MCPcopy Create free account
hub / github.com/Openpanel-dev/openpanel / createEvent

Function createEvent

packages/db/src/services/event.service.ts:368–464  ·  view source on GitHub ↗
(payload: IServiceCreateEventPayload)

Source from the content-addressed store, hash-verified

366 * no-op anyway.
367 */
368export async function createEvent(payload: IServiceCreateEventPayload) {
369 if (!payload.profileId && payload.deviceId) {
370 payload.profileId = payload.deviceId;
371 }
372
373 const event: IClickhouseEvent = {
374 id: uuid(),
375 name: payload.name,
376 device_id: payload.deviceId,
377 profile_id: payload.profileId ? String(payload.profileId) : '',
378 project_id: payload.projectId,
379 session_id: payload.sessionId,
380 properties: toDots(payload.properties),
381 path: payload.path ?? '',
382 origin: payload.origin ?? '',
383 created_at: DateTime.fromJSDate(payload.createdAt)
384 .setZone('UTC')
385 .toFormat('yyyy-MM-dd HH:mm:ss.SSS'),
386 country: payload.country ?? '',
387 city: payload.city ?? '',
388 region: payload.region ?? '',
389 longitude: payload.longitude ?? null,
390 latitude: payload.latitude ?? null,
391 os: payload.os ?? '',
392 os_version: payload.osVersion ?? '',
393 browser: payload.browser ?? '',
394 browser_version: payload.browserVersion ?? '',
395 device: payload.device ?? '',
396 brand: payload.brand ?? '',
397 model: payload.model ?? '',
398 duration: payload.duration ?? 0,
399 referrer: payload.referrer ?? '',
400 referrer_name: payload.referrerName ?? '',
401 referrer_type: payload.referrerType ?? '',
402 imported_at: null,
403 sdk_name: payload.sdkName ?? '',
404 sdk_version: payload.sdkVersion ?? '',
405 revenue: payload.revenue,
406 groups: payload.groups ?? [],
407 };
408
409 eventBuffer.add(event);
410
411 const promises: Promise<unknown>[] = [];
412
413 if (payload.profileId) {
414 const profile: IServiceUpsertProfile = {
415 id: String(payload.profileId),
416 isExternal: payload.profileId !== payload.deviceId,
417 projectId: payload.projectId,
418 properties: {
419 path: payload.path,
420 country: payload.country,
421 city: payload.city,
422 region: payload.region,
423 longitude: payload.longitude,
424 latitude: payload.latitude,
425 os: payload.os,

Callers 2

createEventAndNotifyFunction · 0.90
createSessionEndFunction · 0.90

Calls 4

toDotsFunction · 0.90
upsertProfileFunction · 0.90
addMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected