From f35e24efa8446c8e25184027ffa6f58542a7402f Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 10 Jun 2024 04:15:31 +0200 Subject: [PATCH] add session to visits and events --- broker/src/StreamLoopController.ts | 5 ++++- shared/schema/metrics/EventSchema.ts | 2 ++ shared/schema/metrics/VisitSchema.ts | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/broker/src/StreamLoopController.ts b/broker/src/StreamLoopController.ts index a4e4743..efe82a2 100644 --- a/broker/src/StreamLoopController.ts +++ b/broker/src/StreamLoopController.ts @@ -77,12 +77,15 @@ async function process_visit(data: Record, sessionHash: string) browser: userAgentParsed.browser.name || 'NO_BROWSER', os: userAgentParsed.os.name || 'NO_OS', device: userAgentParsed.device.type, + session: sessionHash, continent: geoLocation[0], country: geoLocation[1], }); await visit.save(); + + await ProjectCountModel.updateOne({ project_id: pid }, { $inc: { 'visits': 1 } }, { upsert: true }); await ProjectLimitModel.updateOne({ project_id: pid }, { $inc: { 'visits': 1 } }); @@ -118,7 +121,7 @@ async function process_event(data: Record, sessionHash: string) metadataObject = { error: 'Error parsing metadata' } } - const event = new EventModel({ project_id: pid, name, metadata: metadataObject }); + const event = new EventModel({ project_id: pid, name, metadata: metadataObject, session: sessionHash }); await event.save(); await ProjectCountModel.updateOne({ project_id: pid }, { $inc: { 'events': 1 } }, { upsert: true }); diff --git a/shared/schema/metrics/EventSchema.ts b/shared/schema/metrics/EventSchema.ts index a738015..8aab521 100644 --- a/shared/schema/metrics/EventSchema.ts +++ b/shared/schema/metrics/EventSchema.ts @@ -4,6 +4,7 @@ export type TEvent = { project_id: Schema.Types.ObjectId, name: string, metadata: Record, + session: string, created_at: Date } @@ -11,6 +12,7 @@ const EventSchema = new Schema({ project_id: { type: Types.ObjectId, index: 1 }, name: { type: String, required: true }, metadata: Schema.Types.Mixed, + session: { type: String }, created_at: { type: Date, default: () => Date.now() }, }) diff --git a/shared/schema/metrics/VisitSchema.ts b/shared/schema/metrics/VisitSchema.ts index 128accc..3ac28b5 100644 --- a/shared/schema/metrics/VisitSchema.ts +++ b/shared/schema/metrics/VisitSchema.ts @@ -9,6 +9,7 @@ export type TVisit = { continent: string, country: string, + session: string, device: string, website: string, @@ -26,6 +27,8 @@ const VisitSchema = new Schema({ continent: { type: String }, country: { type: String }, + + session: { type: String }, device: { type: String },