From d1e8ae3c98ca3e0503008ef5c35377b0f668d32f Mon Sep 17 00:00:00 2001 From: x032205 Date: Thu, 7 Aug 2025 23:25:36 -0400 Subject: [PATCH] Greptile review fixes --- .../v1/access-approval-policy-router.ts | 54 +++++++------------ .../src/hooks/api/accessApproval/types.ts | 2 +- 2 files changed, 21 insertions(+), 35 deletions(-) diff --git a/backend/src/ee/routes/v1/access-approval-policy-router.ts b/backend/src/ee/routes/v1/access-approval-policy-router.ts index f5278476f..a232ae603 100644 --- a/backend/src/ee/routes/v1/access-approval-policy-router.ts +++ b/backend/src/ee/routes/v1/access-approval-policy-router.ts @@ -10,6 +10,24 @@ import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { sapPubSchema } from "@app/server/routes/sanitizedSchemas"; import { AuthMode } from "@app/services/auth/auth-type"; +const maxTimePeriodSchema = z + .string() + .trim() + .optional() + .transform((val, ctx) => { + if (val === undefined) return undefined; + const parsedMs = ms(val); + + if (typeof parsedMs !== "number" || parsedMs <= 0) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: "Invalid time period format or value. Must be a positive duration (e.g., '1h', '30m', '2d')." + }); + return z.NEVER; + } + return val; + }); + export const registerAccessApprovalPolicyRouter = async (server: FastifyZodProvider) => { server.route({ url: "/", @@ -73,23 +91,7 @@ export const registerAccessApprovalPolicyRouter = async (server: FastifyZodProvi approvals: z.number().min(1).default(1), enforcementLevel: z.nativeEnum(EnforcementLevel).default(EnforcementLevel.Hard), allowedSelfApprovals: z.boolean().default(true), - maxTimePeriod: z - .string() - .trim() - .optional() - .transform((val, ctx) => { - if (val === undefined) return undefined; - const parsedMs = ms(val); - - if (typeof parsedMs !== "number" || parsedMs <= 0) { - ctx.addIssue({ - code: z.ZodIssueCode.custom, - message: "Invalid time period format or value. Must be a positive duration (e.g., '1h', '30m', '2d')." - }); - return z.NEVER; - } - return val; - }) + maxTimePeriod: maxTimePeriodSchema }) .refine( (val) => Boolean(val.environment) || Boolean(val.environments), @@ -253,23 +255,7 @@ export const registerAccessApprovalPolicyRouter = async (server: FastifyZodProvi }) .array() .optional(), - maxTimePeriod: z - .string() - .trim() - .optional() - .transform((val, ctx) => { - if (val === undefined) return undefined; - const parsedMs = ms(val); - - if (typeof parsedMs !== "number" || parsedMs <= 0) { - ctx.addIssue({ - code: z.ZodIssueCode.custom, - message: "Invalid time period format or value. Must be a positive duration (e.g., '1h', '30m', '2d')." - }); - return z.NEVER; - } - return val; - }) + maxTimePeriod: maxTimePeriodSchema }), response: { 200: z.object({ diff --git a/frontend/src/hooks/api/accessApproval/types.ts b/frontend/src/hooks/api/accessApproval/types.ts index 5d2344977..85c565caa 100644 --- a/frontend/src/hooks/api/accessApproval/types.ts +++ b/frontend/src/hooks/api/accessApproval/types.ts @@ -94,7 +94,7 @@ export type TAccessApprovalRequest = { enforcementLevel: EnforcementLevel; deletedAt: Date | null; allowedSelfApprovals: boolean; - maxTimePeriod: string | null; + maxTimePeriod?: string | null; }; reviewers: {