diff --git a/components/Current/Header/index.tsx b/components/Current/Header/index.tsx index c63b90d28..973e6adc1 100644 --- a/components/Current/Header/index.tsx +++ b/components/Current/Header/index.tsx @@ -17,7 +17,7 @@ export default async function Header({ languageSwitcher: React.ReactNode myPagesMobileDropdown: React.ReactNode }) { - const data = await serverClient().contentstack.base.header({ + const data = await serverClient().contentstack.base.currentHeader({ lang: getLang(), }) diff --git a/server/routers/contentstack/base/output.ts b/server/routers/contentstack/base/output.ts index 3c81aae88..a7931fb18 100644 --- a/server/routers/contentstack/base/output.ts +++ b/server/routers/contentstack/base/output.ts @@ -62,7 +62,7 @@ export type ContactFields = { footnote: string | null } -export const validateHeaderConfigSchema = z.object({ +export const validateCurrentHeaderConfigSchema = z.object({ all_current_header: z.object({ items: z.array( z.object({ @@ -111,16 +111,18 @@ export const validateHeaderConfigSchema = z.object({ }), }) -export type HeaderDataRaw = z.infer +export type CurrentHeaderDataRaw = z.infer< + typeof validateCurrentHeaderConfigSchema +> -export type HeaderData = Omit< - HeaderDataRaw["all_current_header"]["items"][0], +export type CurrentHeaderData = Omit< + CurrentHeaderDataRaw["all_current_header"]["items"][0], "logoConnection" > & { logo: Image } -const validateHeaderRefConfigSchema = z.object({ +const validateCurrentHeaderRefConfigSchema = z.object({ all_current_header: z.object({ items: z.array( z.object({ @@ -133,7 +135,9 @@ const validateHeaderRefConfigSchema = z.object({ }), }) -export type HeaderRefDataRaw = z.infer +export type CurrentHeaderRefDataRaw = z.infer< + typeof validateCurrentHeaderRefConfigSchema +> const validateAppDownload = z.object({ href: z.string(), diff --git a/server/routers/contentstack/base/query.ts b/server/routers/contentstack/base/query.ts index e8570e192..262878260 100644 --- a/server/routers/contentstack/base/query.ts +++ b/server/routers/contentstack/base/query.ts @@ -18,14 +18,14 @@ import { generateRefsResponseTag, generateTag } from "@/utils/generateTag" import { langInput } from "./input" import { type ContactConfigData, + CurrentHeaderData, + CurrentHeaderDataRaw, + CurrentHeaderRefDataRaw, FooterDataRaw, FooterRefDataRaw, - HeaderData, - HeaderDataRaw, - HeaderRefDataRaw, validateContactConfigSchema, + validateCurrentHeaderConfigSchema, validateFooterConfigSchema, - validateHeaderConfigSchema, } from "./output" const meter = metrics.getMeter("trpc.contentstack.base") @@ -40,21 +40,23 @@ const getContactConfigFailCounter = meter.createCounter( "trpc.contentstack.contactConfig.get-fail" ) // OpenTelemetry metrics: Header -const getHeaderRefCounter = meter.createCounter( - "trpc.contentstack.header.ref.get" +const getCurrentHeaderRefCounter = meter.createCounter( + "trpc.contentstack.currentHeader.ref.get" ) -const getHeaderRefSuccessCounter = meter.createCounter( - "trpc.contentstack.header.ref.get-success" +const getCurrentHeaderRefSuccessCounter = meter.createCounter( + "trpc.contentstack.currentHeader.ref.get-success" ) -const getHeaderRefFailCounter = meter.createCounter( - "trpc.contentstack.header.ref.get-fail" +const getCurrentHeaderRefFailCounter = meter.createCounter( + "trpc.contentstack.currentHeader.ref.get-fail" ) -const getHeaderCounter = meter.createCounter("trpc.contentstack.header.get") -const getHeaderSuccessCounter = meter.createCounter( - "trpc.contentstack.header.get-success" +const getCurrentHeaderCounter = meter.createCounter( + "trpc.contentstack.currentHeader.get" ) -const getHeaderFailCounter = meter.createCounter( - "trpc.contentstack.header.get-fail" +const getCurrentHeaderSuccessCounter = meter.createCounter( + "trpc.contentstack.currentHeader.get-success" +) +const getCurrentHeaderFailCounter = meter.createCounter( + "trpc.contentstack.currentHeader.get-fail" ) // OpenTelemetry metrics: Footer const getFooterRefCounter = meter.createCounter( @@ -138,15 +140,15 @@ export const baseQueryRouter = router({ ) return validatedContactConfigConfig.data.all_contact_config.items[0] }), - header: contentstackBaseProcedure + currentHeader: contentstackBaseProcedure .input(langInput) .query(async ({ input }) => { - getHeaderRefCounter.add(1, { lang: input.lang }) + getCurrentHeaderRefCounter.add(1, { lang: input.lang }) console.info( - "contentstack.header.ref start", + "contentstack.currentHeader.ref start", JSON.stringify({ query: { lang: input.lang } }) ) - const responseRef = await request( + const responseRef = await request( GetCurrentHeaderRef, { locale: input.lang, @@ -158,9 +160,9 @@ export const baseQueryRouter = router({ }, } ) - getHeaderCounter.add(1, { lang: input.lang }) + getCurrentHeaderCounter.add(1, { lang: input.lang }) console.info( - "contentstack.header start", + "contentstack.currentHeader start", JSON.stringify({ query: { lang: input.lang }, }) @@ -169,7 +171,7 @@ export const baseQueryRouter = router({ const currentHeaderUID = responseRef.data.all_current_header.items[0].system.uid // There's currently no error handling/validation for the responseRef, should it be added? - const response = await request( + const response = await request( GetCurrentHeader, { locale: input.lang }, { @@ -182,13 +184,13 @@ export const baseQueryRouter = router({ if (!response.data) { const notFoundError = notFound(response) - getHeaderFailCounter.add(1, { + getCurrentHeaderFailCounter.add(1, { lang: input.lang, error_type: "not_found", error: JSON.stringify({ code: notFoundError.code }), }) console.error( - "contentstack.header not found error", + "contentstack.currentHeader not found error", JSON.stringify({ query: { lang: input.lang, @@ -199,18 +201,18 @@ export const baseQueryRouter = router({ throw notFoundError } - const validatedHeaderConfig = validateHeaderConfigSchema.safeParse( + const validatedHeaderConfig = validateCurrentHeaderConfigSchema.safeParse( response.data ) if (!validatedHeaderConfig.success) { - getHeaderFailCounter.add(1, { + getCurrentHeaderFailCounter.add(1, { lang: input.lang, error_type: "validation_error", error: JSON.stringify(validatedHeaderConfig.error), }) console.error( - "contentstack.header validation error", + "contentstack.currentHeader validation error", JSON.stringify({ query: { lang: input.lang, @@ -220,9 +222,9 @@ export const baseQueryRouter = router({ ) return null } - getHeaderSuccessCounter.add(1, { lang: input.lang }) + getCurrentHeaderSuccessCounter.add(1, { lang: input.lang }) console.info( - "contentstack.header success", + "contentstack.currentHeader success", JSON.stringify({ query: { lang: input.lang }, }) @@ -234,7 +236,7 @@ export const baseQueryRouter = router({ return { ...validatedHeaderConfig.data.all_current_header.items[0], logo, - } as HeaderData + } as CurrentHeaderData }), footer: contentstackBaseProcedure .input(langInput)