diff --git a/apps/api/src/controllers/event.controller.ts b/apps/api/src/controllers/event.controller.ts index 2f6e1221..6d50f128 100644 --- a/apps/api/src/controllers/event.controller.ts +++ b/apps/api/src/controllers/event.controller.ts @@ -243,8 +243,8 @@ export async function postEvent( duration: 0, path: path, referrer: referrer?.url, - referrerName: referrer?.name ?? utmReferrer?.name ?? '', - referrerType: referrer?.type ?? utmReferrer?.type ?? '', + referrerName: referrer?.name || utmReferrer?.name || '', + referrerType: referrer?.type || utmReferrer?.type || '', profile: undefined, meta: undefined, }; diff --git a/apps/api/src/utils/parseReferrer.ts b/apps/api/src/utils/parseReferrer.ts index 97358228..adec1df9 100644 --- a/apps/api/src/utils/parseReferrer.ts +++ b/apps/api/src/utils/parseReferrer.ts @@ -34,17 +34,25 @@ export function getReferrerWithQuery( const source = query.utm_source ?? query.ref ?? query.utm_referrer ?? ''; - const match = Object.values(referrers).find( - (referrer) => referrer.name.toLowerCase() === source?.toLowerCase() - ); - - if (!match) { + if (source === '') { return null; } + const match = Object.values(referrers).find( + (referrer) => referrer.name.toLowerCase() === source.toLowerCase() + ); + + if (match) { + return { + name: match.name, + type: match.type, + url: '', + }; + } + return { - name: match.name, - type: match.type, + name: source, + type: 'unknown', url: '', }; }