From 58df9c6edbf46b56c0d5ee73a3c1cec99a612652 Mon Sep 17 00:00:00 2001 From: Anshuman Pandey <54475686+pandeymangg@users.noreply.github.com> Date: Mon, 1 Jul 2024 17:34:22 +0530 Subject: [PATCH] fix: surveys management api input types (#2837) --- apps/web/app/api/v1/management/surveys/[surveyId]/route.ts | 4 ++-- packages/types/surveys.ts | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/web/app/api/v1/management/surveys/[surveyId]/route.ts b/apps/web/app/api/v1/management/surveys/[surveyId]/route.ts index d60ac2e938..0eb9b6045e 100644 --- a/apps/web/app/api/v1/management/surveys/[surveyId]/route.ts +++ b/apps/web/app/api/v1/management/surveys/[surveyId]/route.ts @@ -2,7 +2,7 @@ import { authenticateRequest, handleErrorResponse } from "@/app/api/v1/auth"; import { responses } from "@/app/lib/api/response"; import { transformErrorToDetails } from "@/app/lib/api/validator"; import { deleteSurvey, getSurvey, updateSurvey } from "@formbricks/lib/survey/service"; -import { TSurvey, ZSurvey } from "@formbricks/types/surveys"; +import { TSurvey, ZSurveyUpdateInput } from "@formbricks/types/surveys"; const fetchAndAuthorizeSurvey = async (authentication: any, surveyId: string): Promise => { const survey = await getSurvey(surveyId); @@ -68,7 +68,7 @@ export const PUT = async ( console.error(`Error parsing JSON input: ${error}`); return responses.badRequestResponse("Malformed JSON input, please check your request body"); } - const inputValidation = ZSurvey.safeParse({ + const inputValidation = ZSurveyUpdateInput.safeParse({ ...survey, ...surveyUpdate, }); diff --git a/packages/types/surveys.ts b/packages/types/surveys.ts index 58b25785e4..c64e44f19b 100644 --- a/packages/types/surveys.ts +++ b/packages/types/surveys.ts @@ -524,6 +524,13 @@ export const ZSurvey = z.object({ showLanguageSwitch: z.boolean().nullable(), }); +export const ZSurveyUpdateInput = ZSurvey.omit({ createdAt: true, updatedAt: true }).and( + z.object({ + createdAt: z.coerce.date(), + updatedAt: z.coerce.date(), + }) +); + export const ZSurveyInput = z.object({ name: z.string(), type: ZSurveyType.optional(),