Distributed cache * cache deleteKey now uses an options object instead of a lonely argument variable fuzzy * merge * remove debug logs and cleanup * cleanup * add fault handling * add fault handling * add pid when logging redis client creation * add identifier when logging redis client creation * cleanup * feat: add redis-api as it's own app * feature: use http wrapper for redis * feat: add the possibility to fallback to unstable_cache * Add error handling if redis cache is unresponsive * add logging for unstable_cache * merge * don't cache errors * fix: metadatabase on branchdeploys * Handle when /en/destinations throws add ErrorBoundary * Add sentry-logging when ErrorBoundary catches exception * Fix error handling for distributed cache * cleanup code * Added Application Insights back * Update generateApiKeys script and remove duplicate * Merge branch 'feature/redis' of bitbucket.org:scandic-swap/web into feature/redis * merge Approved-by: Linus Flood
64 lines
2.0 KiB
TypeScript
64 lines
2.0 KiB
TypeScript
import { notFound } from "next/navigation"
|
|
|
|
import { GetCurrentBlockPage } from "@/lib/graphql/Query/Current/CurrentBlockPage.graphql"
|
|
import { GetCurrentBlockPageTrackingData } from "@/lib/graphql/Query/Current/CurrentBlockPageTrackingData.graphql"
|
|
import { request } from "@/lib/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({
|
|
params,
|
|
searchParams,
|
|
}: PageArgs<LangParams, UriParams>) {
|
|
try {
|
|
if (!searchParams.uri) {
|
|
throw new Error("Bad URI")
|
|
}
|
|
|
|
const response = await request<GetCurrentBlockPageData>(
|
|
GetCurrentBlockPage,
|
|
{
|
|
locale: params.lang,
|
|
url: searchParams.uri,
|
|
}
|
|
)
|
|
|
|
if (!response.data?.all_current_blocks_page?.total) {
|
|
console.log("#### DATA ####")
|
|
console.log(response.data)
|
|
console.log("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 }
|
|
)
|
|
|
|
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()
|
|
}
|
|
}
|