From 15b56fd0ddd5aad811fee9b0aaa21de0a73e18b2 Mon Sep 17 00:00:00 2001 From: Christel Westerberg Date: Thu, 30 May 2024 11:33:11 +0200 Subject: [PATCH] fix: zod validation --- components/Current/Header/index.tsx | 2 +- .../contentstack/accountPage/output.ts | 24 ++++++++++++++----- server/routers/contentstack/config/input.ts | 9 ------- server/routers/contentstack/config/query.ts | 8 +++---- .../contentstack/loyaltyPage/output.ts | 24 ++++++++++++++----- 5 files changed, 40 insertions(+), 27 deletions(-) delete mode 100644 server/routers/contentstack/config/input.ts diff --git a/components/Current/Header/index.tsx b/components/Current/Header/index.tsx index 47a33efd4..449333111 100644 --- a/components/Current/Header/index.tsx +++ b/components/Current/Header/index.tsx @@ -16,7 +16,7 @@ export default async function Header({ lang, languageSwitcher, }: LangParams & { languageSwitcher: React.ReactNode }) { - const data = await serverClient().contentstack.config.header({ lang }) + const data = await serverClient().contentstack.config.header() const session = await auth() const homeHref = homeHrefs[env.NODE_ENV][lang] diff --git a/server/routers/contentstack/accountPage/output.ts b/server/routers/contentstack/accountPage/output.ts index 204f23a81..c4b0af11b 100644 --- a/server/routers/contentstack/accountPage/output.ts +++ b/server/routers/contentstack/accountPage/output.ts @@ -190,10 +190,22 @@ export type AccountPageRefsDataRaw = z.infer< > export const validateLanguageSwitcherData = z.object({ - en: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(), - da: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(), - de: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(), - fi: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(), - sv: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(), - no: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(), + en: z + .object({ url: z.string().optional(), isExternal: z.boolean() }) + .nullable(), + da: z + .object({ url: z.string().optional(), isExternal: z.boolean() }) + .nullable(), + de: z + .object({ url: z.string().optional(), isExternal: z.boolean() }) + .nullable(), + fi: z + .object({ url: z.string().optional(), isExternal: z.boolean() }) + .nullable(), + sv: z + .object({ url: z.string().optional(), isExternal: z.boolean() }) + .nullable(), + no: z + .object({ url: z.string().optional(), isExternal: z.boolean() }) + .nullable(), }) diff --git a/server/routers/contentstack/config/input.ts b/server/routers/contentstack/config/input.ts deleted file mode 100644 index c1223b25b..000000000 --- a/server/routers/contentstack/config/input.ts +++ /dev/null @@ -1,9 +0,0 @@ -import z from "zod" - -import { Lang } from "@/constants/languages" - -export const headerInput = z - .object({ - lang: z.nativeEnum(Lang), - }) - .optional() diff --git a/server/routers/contentstack/config/query.ts b/server/routers/contentstack/config/query.ts index ee3098b25..286d89524 100644 --- a/server/routers/contentstack/config/query.ts +++ b/server/routers/contentstack/config/query.ts @@ -4,7 +4,6 @@ import { request } from "@/lib/graphql/request" import { internalServerError, notFound } from "@/server/errors/trpc" import { contentstackProcedure, publicProcedure, router } from "@/server/trpc" -import { headerInput } from "./input" import { type ContactConfigData, HeaderData, @@ -35,12 +34,11 @@ export const configQueryRouter = router({ return validatedContactConfigConfig.data.all_contact_config.items[0] }), - header: publicProcedure.input(headerInput).query(async ({ input, ctx }) => { - const locale = input?.lang || ctx.lang + header: publicProcedure.query(async ({ ctx }) => { const response = await request( GetCurrentHeader, - { locale }, - { next: { tags: [`header-${locale}`] } } + { locale: ctx.lang }, + { next: { tags: [`header-${ctx.lang}`] } } ) if (!response.data) { diff --git a/server/routers/contentstack/loyaltyPage/output.ts b/server/routers/contentstack/loyaltyPage/output.ts index 466611db9..c139a6f88 100644 --- a/server/routers/contentstack/loyaltyPage/output.ts +++ b/server/routers/contentstack/loyaltyPage/output.ts @@ -308,10 +308,22 @@ export type LoyaltyPageRefsDataRaw = z.infer< > export const validateLanguageSwitcherData = z.object({ - en: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(), - da: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(), - de: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(), - fi: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(), - sv: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(), - no: z.object({ url: z.string(), isExternal: z.boolean() }).nullable(), + en: z + .object({ url: z.string().optional(), isExternal: z.boolean() }) + .nullable(), + da: z + .object({ url: z.string().optional(), isExternal: z.boolean() }) + .nullable(), + de: z + .object({ url: z.string().optional(), isExternal: z.boolean() }) + .nullable(), + fi: z + .object({ url: z.string().optional(), isExternal: z.boolean() }) + .nullable(), + sv: z + .object({ url: z.string().optional(), isExternal: z.boolean() }) + .nullable(), + no: z + .object({ url: z.string().optional(), isExternal: z.boolean() }) + .nullable(), })