From a0ad4dffacb49bbeb8bafce576658f2331c2bb83 Mon Sep 17 00:00:00 2001 From: Linus Flood Date: Tue, 8 Oct 2024 11:08:21 +0200 Subject: [PATCH] Refactor --- lib/graphql/Query/AccountPage/AccountPage.graphql | 6 +++--- lib/graphql/Query/ContentPage/ContentPage.graphql | 6 +++--- lib/graphql/Query/HotelPage/HotelPage.graphql | 6 +++--- lib/graphql/Query/LoyaltyPage/LoyaltyPage.graphql | 6 +++--- server/routers/contentstack/accountPage/output.ts | 6 +++--- server/routers/contentstack/accountPage/query.ts | 5 +---- server/routers/contentstack/contentPage/output.ts | 6 +++--- server/routers/contentstack/contentPage/query.ts | 4 +--- server/routers/contentstack/hotelPage/output.ts | 6 +++--- server/routers/contentstack/loyaltyPage/output.ts | 7 +++---- server/routers/contentstack/loyaltyPage/query.ts | 3 +-- types/components/tracking.ts | 2 +- utils/tracking.ts | 11 +++-------- 13 files changed, 31 insertions(+), 43 deletions(-) diff --git a/lib/graphql/Query/AccountPage/AccountPage.graphql b/lib/graphql/Query/AccountPage/AccountPage.graphql index f94b5bf61..d08f474c1 100644 --- a/lib/graphql/Query/AccountPage/AccountPage.graphql +++ b/lib/graphql/Query/AccountPage/AccountPage.graphql @@ -20,9 +20,9 @@ query GetAccountPage($locale: String!, $uid: String!) { created_at updated_at } - page_settings { - tracking_page_name - } + } + trackingProps: account_page(locale: "en", uid: $uid) { + url } } diff --git a/lib/graphql/Query/ContentPage/ContentPage.graphql b/lib/graphql/Query/ContentPage/ContentPage.graphql index 1ea567747..47f11229d 100644 --- a/lib/graphql/Query/ContentPage/ContentPage.graphql +++ b/lib/graphql/Query/ContentPage/ContentPage.graphql @@ -42,9 +42,9 @@ query GetContentPage($locale: String!, $uid: String!) { created_at updated_at } - page_settings { - tracking_page_name - } + } + trackingProps: content_page(locale: "en", uid: $uid) { + url } } diff --git a/lib/graphql/Query/HotelPage/HotelPage.graphql b/lib/graphql/Query/HotelPage/HotelPage.graphql index b1713133d..3c3de0bf5 100644 --- a/lib/graphql/Query/HotelPage/HotelPage.graphql +++ b/lib/graphql/Query/HotelPage/HotelPage.graphql @@ -31,9 +31,9 @@ query GetHotelPage($locale: String!, $uid: String!) { } } } - page_settings { - tracking_page_name - } + } + trackingProps: hotel_page(locale: "en", uid: $uid) { + url } } diff --git a/lib/graphql/Query/LoyaltyPage/LoyaltyPage.graphql b/lib/graphql/Query/LoyaltyPage/LoyaltyPage.graphql index 40aed7835..cae4e97dd 100644 --- a/lib/graphql/Query/LoyaltyPage/LoyaltyPage.graphql +++ b/lib/graphql/Query/LoyaltyPage/LoyaltyPage.graphql @@ -33,9 +33,9 @@ query GetLoyaltyPage($locale: String!, $uid: String!) { created_at updated_at } - page_settings { - tracking_page_name - } + } + trackingProps: loyalty_page(locale: "en", uid: $uid) { + url } } diff --git a/server/routers/contentstack/accountPage/output.ts b/server/routers/contentstack/accountPage/output.ts index 8f5e0e6ba..479765756 100644 --- a/server/routers/contentstack/accountPage/output.ts +++ b/server/routers/contentstack/accountPage/output.ts @@ -46,9 +46,6 @@ export const accountPageSchema = z.object({ heading: z.string().nullable(), title: z.string(), url: z.string(), - page_settings: z.object({ - tracking_page_name: z.string().nullable(), - }), system: systemSchema.merge( z.object({ created_at: z.string(), @@ -56,6 +53,9 @@ export const accountPageSchema = z.object({ }) ), }), + trackingProps: z.object({ + url: z.string(), + }), }) const accountPageDynamicContentRefs = z diff --git a/server/routers/contentstack/accountPage/query.ts b/server/routers/contentstack/accountPage/query.ts index 9100f888f..d68682494 100644 --- a/server/routers/contentstack/accountPage/query.ts +++ b/server/routers/contentstack/accountPage/query.ts @@ -197,10 +197,7 @@ export const accountPageQueryRouter = router({ createdDate: validatedAccountPage.data.account_page.system.created_at, channel: TrackingChannelEnum["scandic-friends"], pageType: `member${parsedtitle}page`, - pageName: - validatedAccountPage.data.account_page.page_settings.tracking_page_name, - siteSections: - validatedAccountPage.data.account_page.page_settings.tracking_page_name, // Always the same as pageName for this page + pageName: validatedAccountPage.data.trackingProps.url, } return { diff --git a/server/routers/contentstack/contentPage/output.ts b/server/routers/contentstack/contentPage/output.ts index 023988438..5e13d9a61 100644 --- a/server/routers/contentstack/contentPage/output.ts +++ b/server/routers/contentstack/contentPage/output.ts @@ -144,9 +144,9 @@ export const contentPageSchema = z.object({ updated_at: z.string(), }) ), - page_settings: z.object({ - tracking_page_name: z.string().nullable(), - }), + }), + trackingProps: z.object({ + url: z.string(), }), }) diff --git a/server/routers/contentstack/contentPage/query.ts b/server/routers/contentstack/contentPage/query.ts index 5414dbe6b..f764ebde4 100644 --- a/server/routers/contentstack/contentPage/query.ts +++ b/server/routers/contentstack/contentPage/query.ts @@ -68,9 +68,7 @@ export const contentPageQueryRouter = router({ createdDate: contentPage.data.content_page.system.created_at, channel: TrackingChannelEnum["static-content-page"], pageType: "staticcontentpage", - pageName: contentPage.data.content_page.page_settings.tracking_page_name, - siteSections: - contentPage.data.content_page.page_settings.tracking_page_name, // Always the same as pageName for this page + pageName: contentPage.data.trackingProps.url, } return { diff --git a/server/routers/contentstack/hotelPage/output.ts b/server/routers/contentstack/hotelPage/output.ts index 06c029d4e..f57bb479d 100644 --- a/server/routers/contentstack/hotelPage/output.ts +++ b/server/routers/contentstack/hotelPage/output.ts @@ -22,8 +22,8 @@ export const hotelPageSchema = z.object({ hotel_page_id: z.string(), title: z.string(), url: z.string(), - page_settings: z.object({ - tracking_page_name: z.string().nullable(), - }), + }), + trackingProps: z.object({ + url: z.string(), }), }) diff --git a/server/routers/contentstack/loyaltyPage/output.ts b/server/routers/contentstack/loyaltyPage/output.ts index af37613f6..edf8fd1db 100644 --- a/server/routers/contentstack/loyaltyPage/output.ts +++ b/server/routers/contentstack/loyaltyPage/output.ts @@ -178,9 +178,6 @@ export const loyaltyPageSchema = z.object({ updated_at: z.string(), }) ), - page_settings: z.object({ - tracking_page_name: z.string().nullable(), - }), }) .transform((data) => { return { @@ -190,7 +187,9 @@ export const loyaltyPageSchema = z.object({ preamble: data.preamble, sidebar: data.sidebar ? data.sidebar : [], system: data.system, - pageSettings: data.page_settings, } }), + trackingProps: z.object({ + url: z.string(), + }), }) diff --git a/server/routers/contentstack/loyaltyPage/query.ts b/server/routers/contentstack/loyaltyPage/query.ts index 2fe467a64..76bbc560e 100644 --- a/server/routers/contentstack/loyaltyPage/query.ts +++ b/server/routers/contentstack/loyaltyPage/query.ts @@ -181,8 +181,7 @@ export const loyaltyPageQueryRouter = router({ createdDate: loyaltyPage.system.created_at, channel: TrackingChannelEnum["scandic-friends"], pageType: "loyaltycontentpage", - pageName: loyaltyPage.pageSettings.tracking_page_name, - siteSections: loyaltyPage.pageSettings.tracking_page_name, // Always the same as pageName for this page + pageName: validatedLoyaltyPage.data.trackingProps.url, } getLoyaltyPageSuccessCounter.add(1, metricsVariables) console.info( diff --git a/types/components/tracking.ts b/types/components/tracking.ts index 9e31fe2d9..786834558 100644 --- a/types/components/tracking.ts +++ b/types/components/tracking.ts @@ -19,7 +19,7 @@ export type TrackingSDKPageData = { siteVersion?: "new-web" pageName: string | null domain?: string - siteSections: string | null + siteSections?: string pageLoadTime?: number // Page load time in seconds } diff --git a/utils/tracking.ts b/utils/tracking.ts index d65c4359c..7342d6a9a 100644 --- a/utils/tracking.ts +++ b/utils/tracking.ts @@ -39,17 +39,12 @@ export function trackLoginClick(position: TrackingPosition) { export function createSDKPageObject( trackingData: TrackingSDKData ): TrackingSDKData { - const [lang, ...segments] = trackingData.pathName - .split("/") - .filter((seg: string) => seg) - - const joinedSegments = segments.join("|") + const siteSections = + trackingData.pageName?.split("/").slice(1).join("|") ?? "" return { ...trackingData, domain: window.location.host, - pageName: trackingData.pageName ?? joinedSegments, - siteSections: trackingData.siteSections ?? joinedSegments, - domainLanguage: trackingData.domainLanguage ?? lang, + siteSections: siteSections, } }