fix: validation for header

This commit is contained in:
Simon Emanuelsson
2024-09-22 21:22:21 +02:00
parent ac5e48357c
commit 68703d72e1
33 changed files with 453 additions and 404 deletions

View File

@@ -9,14 +9,8 @@ import {
GetCurrentHeader,
GetCurrentHeaderRef,
} from "@/lib/graphql/Query/Current/Header.graphql"
import {
GetFooter,
GetFooterRef,
} from "@/lib/graphql/Query/Footer.graphql"
import {
GetHeader,
GetHeaderRef,
} from "@/lib/graphql/Query/Header.graphql"
import { GetFooter, GetFooterRef } from "@/lib/graphql/Query/Footer.graphql"
import { GetHeader, GetHeaderRef } from "@/lib/graphql/Query/Header.graphql"
import { request } from "@/lib/graphql/request"
import { notFound } from "@/server/errors/trpc"
import { contentstackBaseProcedure, router } from "@/server/trpc"
@@ -25,22 +19,23 @@ import {
generateRefsResponseTag,
generateTag,
generateTags,
generateTagsFromSystem,
} from "@/utils/generateTag"
import { langInput } from "./input"
import {
type GetCurrentHeaderData,
type ContactConfigData,
CurrentFooterDataRaw,
CurrentFooterRefDataRaw,
CurrentHeaderRefDataRaw,
getHeaderRefSchema,
getHeaderSchema,
type GetCurrentHeaderData,
headerRefsSchema,
headerSchema,
validateContactConfigSchema,
validateCurrentFooterConfigSchema,
validateCurrentHeaderConfigSchema,
validateFooterConfigSchema,
validateFooterRefConfigSchema,
validateCurrentHeaderConfigSchema,
} from "./output"
import { getConnections, getFooterConnections } from "./utils"
@@ -48,7 +43,10 @@ import type {
FooterDataRaw,
FooterRefDataRaw,
} from "@/types/components/footer/footer"
import type { HeaderRefResponse, HeaderResponse } from "@/types/header"
import type {
GetHeader as GetHeaderData,
GetHeaderRefs,
} from "@/types/trpc/routers/contentstack/header"
const meter = metrics.getMeter("trpc.contentstack.base")
// OpenTelemetry metrics: ContactConfig
@@ -209,7 +207,7 @@ export const baseQueryRouter = router({
JSON.stringify({ query: { lang } })
)
const responseRef = await request<HeaderRefResponse>(
const responseRef = await request<GetHeaderRefs>(
GetHeaderRef,
{
locale: lang,
@@ -241,7 +239,7 @@ export const baseQueryRouter = router({
throw notFoundError
}
const validatedHeaderRefs = getHeaderRefSchema.safeParse(responseRef.data)
const validatedHeaderRefs = headerRefsSchema.safeParse(responseRef.data)
if (!validatedHeaderRefs.success) {
getHeaderRefsFailCounter.add(1, {
@@ -276,14 +274,11 @@ export const baseQueryRouter = router({
)
const tags = [
generateTags(lang, connections),
generateTag(
lang,
validatedHeaderRefs.data.all_header.items[0].system.uid
),
generateTagsFromSystem(lang, connections),
generateTag(lang, validatedHeaderRefs.data.header.system.uid),
].flat()
const response = await request<HeaderResponse>(
const response = await request<GetHeaderData>(
GetHeader,
{ locale: lang },
{ cache: "force-cache", next: { tags } }
@@ -306,7 +301,7 @@ export const baseQueryRouter = router({
throw notFoundError
}
const validatedHeaderConfig = getHeaderSchema.safeParse(response.data)
const validatedHeaderConfig = headerSchema.safeParse(response.data)
if (!validatedHeaderConfig.success) {
getHeaderFailCounter.add(1, {
@@ -329,7 +324,9 @@ export const baseQueryRouter = router({
JSON.stringify({ query: { lang } })
)
return validatedHeaderConfig.data
return {
data: validatedHeaderConfig.data.header,
}
}),
currentHeader: contentstackBaseProcedure
.input(langInput)