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