fix: add 0-100 bounds validation for field coordinates

This commit is contained in:
Ephraim Atta-Duncan
2025-10-24 12:11:11 +00:00
parent 47bdcd833f
commit 3ba2dd0613
3 changed files with 38 additions and 16 deletions

View File

@ -456,10 +456,22 @@ const ZCreateFieldSchema = z.object({
recipientId: z.number(),
type: z.nativeEnum(FieldType),
pageNumber: z.number(),
pageX: z.number(),
pageY: z.number(),
pageWidth: z.number(),
pageHeight: z.number(),
pageX: z
.number()
.min(0, 'Must be between 0-100 (percentage of page width)')
.max(100, 'Must be between 0-100 (percentage of page width)'),
pageY: z
.number()
.min(0, 'Must be between 0-100 (percentage of page height)')
.max(100, 'Must be between 0-100 (percentage of page height)'),
pageWidth: z
.number()
.min(0, 'Must be between 0-100 (percentage of page width)')
.max(100, 'Must be between 0-100 (percentage of page width)'),
pageHeight: z
.number()
.min(0, 'Must be between 0-100 (percentage of page height)')
.max(100, 'Must be between 0-100 (percentage of page height)'),
fieldMeta: ZFieldMetaSchema.openapi({}),
});

View File

@ -57,17 +57,27 @@ export const ZFieldPageNumberSchema = z
export const ZFieldPageXSchema = z
.number()
.min(0)
.min(0, 'Must be between 0-100 (percentage of page width)')
.max(100, 'Must be between 0-100 (percentage of page width)')
.describe('The X coordinate of where the field will be placed.');
export const ZFieldPageYSchema = z
.number()
.min(0)
.min(0, 'Must be between 0-100 (percentage of page height)')
.max(100, 'Must be between 0-100 (percentage of page height)')
.describe('The Y coordinate of where the field will be placed.');
export const ZFieldWidthSchema = z.number().min(1).describe('The width of the field.');
export const ZFieldWidthSchema = z
.number()
.min(0, 'Must be between 0-100 (percentage of page width)')
.max(100, 'Must be between 0-100 (percentage of page width)')
.describe('The width of the field.');
export const ZFieldHeightSchema = z.number().min(1).describe('The height of the field.');
export const ZFieldHeightSchema = z
.number()
.min(0, 'Must be between 0-100 (percentage of page height)')
.max(100, 'Must be between 0-100 (percentage of page height)')
.describe('The height of the field.');
// ---------------------------------------------

View File

@ -115,10 +115,10 @@ export const ZSetDocumentFieldsRequestSchema = z.object({
recipientId: z.number().min(1),
envelopeItemId: z.string(),
pageNumber: z.number().min(1),
pageX: z.number().min(0),
pageY: z.number().min(0),
pageWidth: z.number().min(0),
pageHeight: z.number().min(0),
pageX: z.number().min(0).max(100),
pageY: z.number().min(0).max(100),
pageWidth: z.number().min(0).max(100),
pageHeight: z.number().min(0).max(100),
fieldMeta: ZFieldMetaSchema,
}),
),
@ -137,10 +137,10 @@ export const ZSetFieldsForTemplateRequestSchema = z.object({
recipientId: z.number().min(1),
envelopeItemId: z.string(),
pageNumber: z.number().min(1),
pageX: z.number().min(0),
pageY: z.number().min(0),
pageWidth: z.number().min(0),
pageHeight: z.number().min(0),
pageX: z.number().min(0).max(100),
pageY: z.number().min(0).max(100),
pageWidth: z.number().min(0).max(100),
pageHeight: z.number().min(0).max(100),
fieldMeta: ZFieldMetaSchema,
}),
),