fix: refactor tracking requests
This commit is contained in:
@@ -125,6 +125,12 @@ export const validateAccountPageSchema = z.object({
|
||||
url: z.string(),
|
||||
title: z.string(),
|
||||
content: z.array(accountPageContentItem),
|
||||
system: z.object({
|
||||
uid: z.string(),
|
||||
locale: z.nativeEnum(Lang),
|
||||
created_at: z.string(),
|
||||
updated_at: z.string(),
|
||||
}),
|
||||
}),
|
||||
})
|
||||
|
||||
@@ -189,18 +195,3 @@ export const validateAccountPageRefsSchema = z.object({
|
||||
export type AccountPageRefsDataRaw = z.infer<
|
||||
typeof validateAccountPageRefsSchema
|
||||
>
|
||||
|
||||
//Tracking
|
||||
const validateAccountTrackingData = z.object({
|
||||
account_page: z.object({
|
||||
system: z.object({
|
||||
uid: z.string(),
|
||||
locale: z.string(),
|
||||
updated_at: z.string(),
|
||||
created_at: z.string(),
|
||||
}),
|
||||
title: z.string().nullable(),
|
||||
}),
|
||||
})
|
||||
|
||||
export type AccountPageTackingData = z.infer<typeof validateAccountTrackingData>
|
||||
|
||||
@@ -2,7 +2,6 @@ import { Lang } from "@/constants/languages"
|
||||
import {
|
||||
GetAccountPage,
|
||||
GetAccountPageRefs,
|
||||
GetTrackingAccountPage,
|
||||
} from "@/lib/graphql/Query/AccountPage.graphql"
|
||||
import { request } from "@/lib/graphql/request"
|
||||
import { notFound } from "@/server/errors/trpc"
|
||||
@@ -19,7 +18,6 @@ import {
|
||||
type AccountPage,
|
||||
AccountPageDataRaw,
|
||||
AccountPageRefsDataRaw,
|
||||
AccountPageTackingData,
|
||||
validateAccountPageRefsSchema,
|
||||
validateAccountPageSchema,
|
||||
} from "./output"
|
||||
@@ -136,32 +134,18 @@ export const accountPageQueryRouter = router({
|
||||
content,
|
||||
} as AccountPage
|
||||
|
||||
return accountPage
|
||||
}),
|
||||
tracking: contentstackExtendedProcedureUID.query(async ({ ctx }) => {
|
||||
const { lang, uid } = ctx
|
||||
|
||||
const response = await request<AccountPageTackingData>(
|
||||
GetTrackingAccountPage,
|
||||
{
|
||||
locale: lang,
|
||||
uid,
|
||||
}
|
||||
)
|
||||
|
||||
if (!response.data) {
|
||||
throw notFound(response)
|
||||
}
|
||||
|
||||
const accountTrackingData: TrackingSDKPageData = {
|
||||
pageId: response.data.account_page.system.uid,
|
||||
lang: response.data.account_page.system.locale as Lang,
|
||||
publishedDate: response.data.account_page.system.updated_at,
|
||||
createdDate: response.data.account_page.system.created_at,
|
||||
const tracking: TrackingSDKPageData = {
|
||||
pageId: validatedAccountPage.data.account_page.system.uid,
|
||||
lang: validatedAccountPage.data.account_page.system.locale as Lang,
|
||||
publishedDate: validatedAccountPage.data.account_page.system.updated_at,
|
||||
createdDate: validatedAccountPage.data.account_page.system.created_at,
|
||||
channel: TrackingChannelEnum["scandic-friends"],
|
||||
pageType: `member${response.data.account_page.title}page`,
|
||||
}
|
||||
|
||||
return accountTrackingData
|
||||
return {
|
||||
accountPage,
|
||||
tracking,
|
||||
}
|
||||
}),
|
||||
})
|
||||
|
||||
@@ -193,7 +193,12 @@ export const validateLoyaltyPageSchema = z.object({
|
||||
heading: z.string().nullable(),
|
||||
blocks: z.array(loyaltyPageBlockItem).nullable(),
|
||||
sidebar: z.array(loyaltyPageSidebarItem).nullable(),
|
||||
system: z.object({ uid: z.string() }),
|
||||
system: z.object({
|
||||
uid: z.string(),
|
||||
locale: z.nativeEnum(Lang),
|
||||
created_at: z.string(),
|
||||
updated_at: z.string(),
|
||||
}),
|
||||
})
|
||||
|
||||
// Block types
|
||||
@@ -417,17 +422,3 @@ export const validateLoyaltyPageRefsSchema = z.object({
|
||||
export type LoyaltyPageRefsDataRaw = z.infer<
|
||||
typeof validateLoyaltyPageRefsSchema
|
||||
>
|
||||
|
||||
//Tracking
|
||||
const validateLoyaltyTrackingData = z.object({
|
||||
loyalty_page: z.object({
|
||||
system: z.object({
|
||||
uid: z.string(),
|
||||
locale: z.string(),
|
||||
updated_at: z.string(),
|
||||
created_at: z.string(),
|
||||
}),
|
||||
}),
|
||||
})
|
||||
|
||||
export type LoyaltyPageTackingData = z.infer<typeof validateLoyaltyTrackingData>
|
||||
|
||||
@@ -2,7 +2,6 @@ import { Lang } from "@/constants/languages"
|
||||
import {
|
||||
GetLoyaltyPage,
|
||||
GetLoyaltyPageRefs,
|
||||
GetTrackingLoyaltyPage,
|
||||
} from "@/lib/graphql/Query/LoyaltyPage.graphql"
|
||||
import { request } from "@/lib/graphql/request"
|
||||
import { notFound } from "@/server/errors/trpc"
|
||||
@@ -20,7 +19,6 @@ import { removeEmptyObjects } from "../../utils"
|
||||
import {
|
||||
LoyaltyPage,
|
||||
type LoyaltyPageRefsDataRaw,
|
||||
LoyaltyPageTackingData,
|
||||
validateLoyaltyPageRefsSchema,
|
||||
validateLoyaltyPageSchema,
|
||||
} from "./output"
|
||||
@@ -228,24 +226,6 @@ export const loyaltyPageQueryRouter = router({
|
||||
return null
|
||||
}
|
||||
|
||||
// Assert LoyaltyPage type to get correct typings for RTE fields
|
||||
return validatedLoyaltyPage.data as LoyaltyPage
|
||||
}),
|
||||
tracking: contentstackExtendedProcedureUID.query(async ({ ctx }) => {
|
||||
const { lang, uid } = ctx
|
||||
|
||||
const response = await request<LoyaltyPageTackingData>(
|
||||
GetTrackingLoyaltyPage,
|
||||
{
|
||||
locale: lang,
|
||||
uid,
|
||||
}
|
||||
)
|
||||
|
||||
if (!response.data) {
|
||||
throw notFound(response)
|
||||
}
|
||||
|
||||
const loyaltyTrackingData: TrackingSDKPageData = {
|
||||
pageId: response.data.loyalty_page.system.uid,
|
||||
lang: response.data.loyalty_page.system.locale as Lang,
|
||||
@@ -255,6 +235,10 @@ export const loyaltyPageQueryRouter = router({
|
||||
pageType: "loyaltycontentpage",
|
||||
}
|
||||
|
||||
return loyaltyTrackingData
|
||||
// Assert LoyaltyPage type to get correct typings for RTE fields
|
||||
return {
|
||||
loyaltyPage: validatedLoyaltyPage.data as LoyaltyPage,
|
||||
tracking: loyaltyTrackingData,
|
||||
}
|
||||
}),
|
||||
})
|
||||
|
||||
@@ -248,18 +248,9 @@ export const userQueryRouter = router({
|
||||
)
|
||||
|
||||
if (!previousStaysResponse.ok) {
|
||||
// switch (apiResponse.status) {
|
||||
// case 400:
|
||||
// throw badRequestError(apiResponse)
|
||||
// case 401:
|
||||
// throw unauthorizedError(apiResponse)
|
||||
// case 403:
|
||||
// throw forbiddenError(apiResponse)
|
||||
// default:
|
||||
// throw internalServerError(apiResponse)
|
||||
// }
|
||||
console.info(`API Response Failed - Getting Previous Stays`)
|
||||
console.info(`User: (${JSON.stringify(ctx.session.user)})`)
|
||||
console.info(
|
||||
`API Response Failed - Getting Previous Stays for tracking user`
|
||||
)
|
||||
console.error(previousStaysResponse)
|
||||
return notLoggedInUserTrackingData
|
||||
}
|
||||
@@ -268,8 +259,7 @@ export const userQueryRouter = router({
|
||||
const verifiedPreviousStaysData =
|
||||
getStaysSchema.safeParse(previousStaysApiJson)
|
||||
if (!verifiedPreviousStaysData.success) {
|
||||
console.info(`Failed to validate Previous Stays Data`)
|
||||
console.info(`User: (${JSON.stringify(ctx.session.user)})`)
|
||||
console.info(`Failed to validate Previous Stays Data for tracking user`)
|
||||
console.error(verifiedPreviousStaysData.error)
|
||||
return notLoggedInUserTrackingData
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user