Feature/wrap logging * feat: change all logging to go through our own logger function so that we can control log levels * move packages/trpc to using our own logger * merge Approved-by: Linus Flood
77 lines
2.4 KiB
TypeScript
77 lines
2.4 KiB
TypeScript
import { notFound } from "next/navigation"
|
|
|
|
import { logger } from "@scandic-hotels/common/logger"
|
|
import { GetCurrentBlockPage } from "@scandic-hotels/trpc/graphql/Query/Current/CurrentBlockPage.graphql"
|
|
import { GetCurrentBlockPageTrackingData } from "@scandic-hotels/trpc/graphql/Query/Current/CurrentBlockPageTrackingData.graphql"
|
|
import { request } from "@scandic-hotels/trpc/graphql/request"
|
|
|
|
import ContentPage from "@/components/Current/ContentPage"
|
|
import Tracking from "@/components/Current/Tracking"
|
|
|
|
import type { LangParams, PageArgs, UriParams } from "@/types/params"
|
|
import type { GetCurrentBlockPageData } from "@/types/requests/currentBlockPage"
|
|
import type { TrackingData } from "@/types/requests/trackingData"
|
|
|
|
export default async function CurrentContentPage(
|
|
props: PageArgs<LangParams, UriParams>
|
|
) {
|
|
const searchParams = await props.searchParams
|
|
const params = await props.params
|
|
try {
|
|
if (!searchParams.uri) {
|
|
throw new Error("Bad URI")
|
|
}
|
|
|
|
const response = await request<GetCurrentBlockPageData>(
|
|
GetCurrentBlockPage,
|
|
{
|
|
locale: params.lang,
|
|
url: searchParams.uri,
|
|
},
|
|
{
|
|
key: `${params.lang}:current-block-page:${searchParams.uri}`,
|
|
ttl: "max",
|
|
}
|
|
)
|
|
|
|
if (!response.data?.all_current_blocks_page?.total) {
|
|
logger.debug(
|
|
"#### DATA ####",
|
|
response.data,
|
|
"SearchParams URI: ",
|
|
searchParams.uri
|
|
)
|
|
throw new Error("Not found")
|
|
}
|
|
|
|
// This is currently to be considered a temporary solution to provide the tracking with a few values in english to align with existing reports
|
|
const pageDataForTracking = await request<TrackingData>(
|
|
GetCurrentBlockPageTrackingData,
|
|
{ uid: response.data.all_current_blocks_page.items[0].system.uid },
|
|
{
|
|
key: `${params.lang}:current-block-page-tracking:${searchParams.uri}`,
|
|
ttl: "max",
|
|
}
|
|
)
|
|
|
|
const pageData = response.data.all_current_blocks_page.items[0]
|
|
|
|
const trackingData = {
|
|
lang: params.lang,
|
|
publishedDate: pageData.system.updated_at,
|
|
createdDate: pageData.system.created_at,
|
|
pageId: pageData.system.uid,
|
|
englishUrl: pageDataForTracking.data?.current_blocks_page.url,
|
|
}
|
|
|
|
return (
|
|
<>
|
|
<ContentPage data={response.data} />
|
|
<Tracking pageData={trackingData} />
|
|
</>
|
|
)
|
|
} catch {
|
|
return notFound()
|
|
}
|
|
}
|