Skip to content

Commit 133181e

Browse files
committed
Fix a regression of timestamp format
1 parent 5d3a3b5 commit 133181e

File tree

4 files changed

+19
-25
lines changed

4 files changed

+19
-25
lines changed

src/main/scala/com.snowplowanalytics.snowplow.micro/Routing.scala

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -188,12 +188,6 @@ object Routing {
188188
implicit val dateTimeEncoder: Encoder[DateTime] =
189189
Encoder[String].contramap(_.toString)
190190

191-
implicit val instantEncoder: Encoder[Instant] =
192-
Encoder[Long].contramap(_.toEpochMilli)
193-
194-
implicit val instantDecoder: Decoder[Instant] =
195-
Decoder[Long].map(Instant.ofEpochMilli)
196-
197191
implicit val nameValuePairEncoder: Encoder[NameValuePair] =
198192
Encoder[String].contramap(kv => s"${kv.getName}=${kv.getValue}")
199193

ui/src/App.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -131,22 +131,22 @@ function App() {
131131
// only filter by selected bucket, or not at all
132132
timeRange = selectedTimeBucket
133133
? {
134-
start: Number(selectedTimeBucket.split('-')[0]),
135-
end: Number(selectedTimeBucket.split('-')[1]),
134+
start: selectedTimeBucket.split('|')[0],
135+
end: selectedTimeBucket.split('|')[1],
136136
}
137137
: undefined
138138
} else {
139139
// add a (non-inclusive) upper bound to avoid getting newer events in the results
140-
const refreshTimeLimit = lastRefreshTime?.getTime()
141-
if (selectedTimeBucket && refreshTimeLimit) {
142-
const bucketStart = Number(selectedTimeBucket.split('-')[0])
143-
const bucketEnd = Number(selectedTimeBucket.split('-')[1])
140+
if (selectedTimeBucket && lastRefreshTime) {
141+
const bucketStart = selectedTimeBucket.split('|')[0]
142+
const bucketEnd = selectedTimeBucket.split('|')[1]
143+
const bucketEndTime = new Date(bucketEnd)
144144
timeRange = {
145145
start: bucketStart,
146-
end: Math.min(bucketEnd, refreshTimeLimit),
146+
end: bucketEndTime < lastRefreshTime ? bucketEnd : lastRefreshTime.toISOString(),
147147
}
148-
} else if (refreshTimeLimit) {
149-
timeRange = { end: refreshTimeLimit }
148+
} else if (lastRefreshTime) {
149+
timeRange = { end: lastRefreshTime.toISOString() }
150150
}
151151
}
152152

@@ -299,8 +299,8 @@ function App() {
299299
const filters: string[] = []
300300

301301
if (selectedTimeBucket) {
302-
const bucketStart = Number(selectedTimeBucket.split('-')[0])
303-
const bucketEnd = Number(selectedTimeBucket.split('-')[1])
302+
const bucketStart = selectedTimeBucket.split('|')[0]
303+
const bucketEnd = selectedTimeBucket.split('|')[1]
304304
const startDate = new Date(bucketStart)
305305
const endDate = new Date(bucketEnd)
306306
filters.push(`Time: ${startDate.toLocaleString()}${endDate.toLocaleString()}`)

ui/src/components/EventsChart.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export function EventsChart({
5050
// Check if we actually have events at this time point
5151
if (data.validEvents > 0 || data.failedEvents > 0) {
5252
// Clicking on a bar with actual data - toggle selection
53-
const bucketKey = `${data.bucketStart}-${data.bucketEnd}`
53+
const bucketKey = `${data.bucketStart}|${data.bucketEnd}`
5454
onBucketClick(selectedBucket === bucketKey ? null : bucketKey)
5555
} else {
5656
// Clicking on empty area (no events at this time) - reset selection
@@ -64,7 +64,7 @@ export function EventsChart({
6464

6565
const getBarOpacity = (index: number): number => {
6666
const data = chartData[index]
67-
const bucketKey = `${data.bucketStart}-${data.bucketEnd}`
67+
const bucketKey = `${data.bucketStart}|${data.bucketEnd}`
6868
if (selectedBucket === bucketKey) return 1.0
6969
if (selectedBucket && selectedBucket !== bucketKey) return 0.2
7070
return 0.8

ui/src/services/api.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ export type Event = {
44
}
55

66
export type TimelineBucket = {
7-
start: number
8-
end: number
7+
start: string // ISO string
8+
end: string // ISO string
99
}
1010

1111
export type TimelineRequest = {
@@ -40,8 +40,8 @@ export type EventsFilter = {
4040
}
4141

4242
export type TimeRange = {
43-
start?: number
44-
end?: number
43+
start?: string // ISO string
44+
end?: string // ISO string
4545
}
4646

4747
export type EventsSorting = {
@@ -205,8 +205,8 @@ export class EventsApiService {
205205
const bucketStart = alignedTime - i * bucketSizeMs
206206
const bucketEnd = bucketStart + bucketSizeMs
207207
buckets.push({
208-
start: bucketStart,
209-
end: bucketEnd
208+
start: new Date(bucketStart).toISOString(),
209+
end: new Date(bucketEnd).toISOString()
210210
})
211211
}
212212

0 commit comments

Comments
 (0)