diff --git a/app/components/dashboard/Nav.vue b/app/components/dashboard/Nav.vue
index 87871a0..1f74333 100644
--- a/app/components/dashboard/Nav.vue
+++ b/app/components/dashboard/Nav.vue
@@ -18,9 +18,9 @@ const route = useRoute()
{{ $t('nav.analysis') }}
-
+
diff --git a/app/components/dashboard/realtime/Globe.vue b/app/components/dashboard/realtime/Globe.vue
index 2493eae..b07f527 100644
--- a/app/components/dashboard/realtime/Globe.vue
+++ b/app/components/dashboard/realtime/Globe.vue
@@ -1,49 +1,74 @@
-
+
diff --git a/app/components/dashboard/realtime/Index.vue b/app/components/dashboard/realtime/Index.vue
index 7175ef0..cb59ed4 100644
--- a/app/components/dashboard/realtime/Index.vue
+++ b/app/components/dashboard/realtime/Index.vue
@@ -7,5 +7,6 @@
+
diff --git a/server/api/logs/events.ts b/server/api/logs/events.ts
index f0fa6ec..98b266e 100644
--- a/server/api/logs/events.ts
+++ b/server/api/logs/events.ts
@@ -17,7 +17,7 @@ interface WAEEvents {
function events2logs(events: WAEEvents[]) {
return events.map((event) => {
- const blobs = Array.from({ length: Object.keys(blobsMap).length }).fill(0).reduce((_, _c, i) => {
+ const blobs = Array.from({ length: Object.keys(blobsMap).length }).fill(0).reduce((_, _c, i) => {
_.push(event[`blob${i + 1}`])
return _
}, [])
@@ -25,7 +25,6 @@ function events2logs(events: WAEEvents[]) {
...blobs2logs(blobs),
id: event.index1,
timestamp: event.timestamp,
- _sample_interval: event._sample_interval,
}
})
}
diff --git a/server/api/logs/locations.ts b/server/api/logs/locations.ts
new file mode 100644
index 0000000..b868fd8
--- /dev/null
+++ b/server/api/logs/locations.ts
@@ -0,0 +1,22 @@
+import type { H3Event } from 'h3'
+import { QuerySchema } from '@@/schemas/query'
+
+const { select, and, notEq } = SqlBricks
+
+function query2sql(query: Query, event: H3Event): string {
+ const filter = query2filter(query)
+ const { dataset } = useRuntimeConfig(event)
+ const sql = select(`blob8 as ${blobsMap.blob8},double1 as ${doublesMap.double1},double2 as ${doublesMap.double2},count() as count`)
+ .from(dataset)
+ .where(and([notEq('double1', 0), notEq('double2', 0), filter]))
+ .groupBy([blobsMap.blob8, doublesMap.double1, doublesMap.double2])
+ appendTimeFilter(sql, query)
+ return sql.toString()
+}
+
+export default eventHandler(async (event) => {
+ const query = await getValidatedQuery(event, QuerySchema.parse)
+ const sql = query2sql(query, event)
+
+ return useWAE(event, sql)
+})