From 294a149fd10ee49706bd14b234bc580f9731e61b Mon Sep 17 00:00:00 2001 From: mannilakash Date: Tue, 17 Mar 2026 13:43:36 -0400 Subject: [PATCH] fix: minor changes to statusPageValidation and other fixes --- server/src/db/models/StatusPage.ts | 2 +- server/src/validation/statusPageValidation.ts | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/server/src/db/models/StatusPage.ts b/server/src/db/models/StatusPage.ts index 6c1ada40e..e9b5b59aa 100644 --- a/server/src/db/models/StatusPage.ts +++ b/server/src/db/models/StatusPage.ts @@ -45,7 +45,7 @@ const StatusPageSchema = new Schema( type: { type: [String], required: true, - default: [], + default: ["uptime"], enum: StatusPageTypes, }, companyName: { diff --git a/server/src/validation/statusPageValidation.ts b/server/src/validation/statusPageValidation.ts index c4d5005f3..eaa4075a9 100644 --- a/server/src/validation/statusPageValidation.ts +++ b/server/src/validation/statusPageValidation.ts @@ -10,13 +10,17 @@ export const getStatusPageParamValidation = z.object({ }); export const getStatusPageQueryValidation = z.object({ - type: z.array(z.enum(["uptime", "infrastructure"])), + type: z + .union([z.enum(["uptime", "infrastructure"]), z.array(z.enum(["uptime", "infrastructure"]))]) + .transform((val) => (Array.isArray(val) ? val : [val])), timeFrame: z.coerce.number().optional(), }); export const createStatusPageBodyValidation = z .object({ - type: z.array(z.enum(["uptime", "infrastructure"])), + type: z + .union([z.enum(["uptime", "infrastructure"]), z.array(z.enum(["uptime", "infrastructure"]))]) + .transform((val) => (Array.isArray(val) ? val : [val])), companyName: z.string().min(1, "Company name is required"), url: z.string().regex(/^[a-zA-Z0-9_-]+$/, { message: "URL can only contain letters, numbers, underscores, and hyphens", @@ -30,6 +34,7 @@ export const createStatusPageBodyValidation = z showCharts: booleanCoercion.optional(), showUptimePercentage: booleanCoercion, showAdminLoginLink: booleanCoercion.optional(), + showInfrastructure: booleanCoercion.optional(), removeLogo: z.union([z.literal("true"), z.literal("false")]).optional(), }) .strip();