Skip to content

Commit c4a0c9c

Browse files
committed
Added additional config validator for thumbnail domain
1 parent 7c6ab33 commit c4a0c9c

File tree

1 file changed

+27
-6
lines changed

1 file changed

+27
-6
lines changed

documentation/src/utils/schemas.ts

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,32 @@ export const CreateInspectionDiscriminatedUnionSchema = z.discriminatedUnion(
212212
],
213213
);
214214

215+
const apiDomain = ['api.monk.ai/v1', 'api.preview.monk.ai/v1', 'api.staging.monk.ai/v1'] as const;
216+
const thumbnailDomain = [
217+
'europe-west1-monk-staging-321715.cloudfunctions.net/image_resize',
218+
'europe-west1-monk-preview-321715.cloudfunctions.net/image_resize',
219+
'europe-west1-monk-prod.cloudfunctions.net/image_resize',
220+
] as const;
221+
222+
export const DomainsSchema = z
223+
.object({
224+
apiDomain: z.enum(apiDomain),
225+
thumbnailDomain: z.enum(thumbnailDomain),
226+
})
227+
.refine(
228+
(data) => {
229+
const apiDomainIndex = apiDomain.indexOf(data.apiDomain);
230+
const thumbnailDomainIndex = thumbnailDomain.indexOf(data.thumbnailDomain);
231+
return apiDomainIndex === thumbnailDomainIndex;
232+
},
233+
(data) => ({
234+
message: `The selected thumbnailDomain must correspond to the selected apiDomain. Please use the corresponding thumbnailDomain: ${
235+
thumbnailDomain[apiDomain.indexOf(data.apiDomain)]
236+
}`,
237+
path: ['thumbnailDomain'],
238+
}),
239+
);
240+
215241
export const LiveConfigSchema = z
216242
.object({
217243
id: z.string(),
@@ -234,15 +260,10 @@ export const LiveConfigSchema = z
234260
allowManualLogin: z.boolean(),
235261
allowVehicleTypeSelection: z.boolean(),
236262
fetchFromSearchParams: z.boolean(),
237-
apiDomain: z.enum(['api.monk.ai/v1', 'api.preview.monk.ai/v1', 'api.staging.monk.ai/v1']),
238-
thumbnailDomain: z.enum([
239-
'europe-west1-monk-staging-321715.cloudfunctions.net/image_resize',
240-
'europe-west1-monk-preview-321715.cloudfunctions.net/image_resize',
241-
'europe-west1-monk-prod.cloudfunctions.net/image_resize',
242-
]),
243263
requiredApiPermissions: z.array(z.nativeEnum(MonkApiPermission)).optional(),
244264
palette: MonkPaletteSchema.partial().optional(),
245265
})
266+
.and(DomainsSchema)
246267
.and(SteeringWheelDiscriminatedUnionSchema)
247268
.and(CreateInspectionDiscriminatedUnionSchema)
248269
.and(CameraConfigSchema)

0 commit comments

Comments
 (0)