Skip to content

Commit 5d4f8bf

Browse files
box-sdk-buildbox-sdk-build
andauthored
feat(boxsdkgen): text input validation for Box Sign (box/box-openapi#568) (#1253)
Co-authored-by: box-sdk-build <box-sdk-build@box.com>
1 parent cd917ee commit 5d4f8bf

16 files changed

+1451
-6
lines changed

.codegen.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ "engineHash": "f97463c", "specHash": "31c41d5", "version": "4.2.0" }
1+
{ "engineHash": "f97463c", "specHash": "b7abe0d", "version": "4.2.0" }

src/sdk-gen/schemas/index.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,26 @@ export * from './shieldInformationBarrierSegmentRestrictionBase';
133133
export * from './shieldInformationBarrierSegmentRestrictionMini';
134134
export * from './signRequestCreateSigner';
135135
export * from './signRequestPrefillTag';
136+
export * from './signRequestBase';
137+
export * from './signRequestCreateRequest';
138+
export * from './signRequestSignerAttachment';
139+
export * from './signRequestSignerInputCustomValidation';
140+
export * from './signRequestSignerInputDateAsiaValidation';
141+
export * from './signRequestSignerInputDateEuValidation';
142+
export * from './signRequestSignerInputDateIsoValidation';
143+
export * from './signRequestSignerInputDateUsValidation';
144+
export * from './signRequestSignerInputEmailValidation';
145+
export * from './signRequestSignerInputNumberWithCommaValidation';
146+
export * from './signRequestSignerInputNumberWithPeriodValidation';
147+
export * from './signRequestSignerInputSsnValidation';
148+
export * from './signRequestSignerInputZip4Validation';
149+
export * from './signRequestSignerInputZipValidation';
150+
export * from './signRequestSignerInputValidation';
136151
export * from './templateSignerInput';
137152
export * from './templateSigner';
138153
export * from './signTemplate';
139154
export * from './signTemplates';
140155
export * from './signRequestSignerInput';
141-
export * from './signRequestBase';
142-
export * from './signRequestCreateRequest';
143-
export * from './signRequestSignerAttachment';
144156
export * from './signRequestSigner';
145157
export * from './signRequest';
146158
export * from './signRequests';

src/sdk-gen/schemas/signRequestSignerInput.ts

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,45 @@
11
import { serializeDate } from '../internal/utils';
22
import { deserializeDate } from '../internal/utils';
3+
import { serializeSignRequestSignerInputEmailValidation } from './signRequestSignerInputEmailValidation';
4+
import { deserializeSignRequestSignerInputEmailValidation } from './signRequestSignerInputEmailValidation';
5+
import { serializeSignRequestSignerInputCustomValidation } from './signRequestSignerInputCustomValidation';
6+
import { deserializeSignRequestSignerInputCustomValidation } from './signRequestSignerInputCustomValidation';
7+
import { serializeSignRequestSignerInputZipValidation } from './signRequestSignerInputZipValidation';
8+
import { deserializeSignRequestSignerInputZipValidation } from './signRequestSignerInputZipValidation';
9+
import { serializeSignRequestSignerInputZip4Validation } from './signRequestSignerInputZip4Validation';
10+
import { deserializeSignRequestSignerInputZip4Validation } from './signRequestSignerInputZip4Validation';
11+
import { serializeSignRequestSignerInputSsnValidation } from './signRequestSignerInputSsnValidation';
12+
import { deserializeSignRequestSignerInputSsnValidation } from './signRequestSignerInputSsnValidation';
13+
import { serializeSignRequestSignerInputNumberWithPeriodValidation } from './signRequestSignerInputNumberWithPeriodValidation';
14+
import { deserializeSignRequestSignerInputNumberWithPeriodValidation } from './signRequestSignerInputNumberWithPeriodValidation';
15+
import { serializeSignRequestSignerInputNumberWithCommaValidation } from './signRequestSignerInputNumberWithCommaValidation';
16+
import { deserializeSignRequestSignerInputNumberWithCommaValidation } from './signRequestSignerInputNumberWithCommaValidation';
17+
import { serializeSignRequestSignerInputDateIsoValidation } from './signRequestSignerInputDateIsoValidation';
18+
import { deserializeSignRequestSignerInputDateIsoValidation } from './signRequestSignerInputDateIsoValidation';
19+
import { serializeSignRequestSignerInputDateUsValidation } from './signRequestSignerInputDateUsValidation';
20+
import { deserializeSignRequestSignerInputDateUsValidation } from './signRequestSignerInputDateUsValidation';
21+
import { serializeSignRequestSignerInputDateEuValidation } from './signRequestSignerInputDateEuValidation';
22+
import { deserializeSignRequestSignerInputDateEuValidation } from './signRequestSignerInputDateEuValidation';
23+
import { serializeSignRequestSignerInputDateAsiaValidation } from './signRequestSignerInputDateAsiaValidation';
24+
import { deserializeSignRequestSignerInputDateAsiaValidation } from './signRequestSignerInputDateAsiaValidation';
325
import { serializeSignRequestPrefillTag } from './signRequestPrefillTag';
426
import { deserializeSignRequestPrefillTag } from './signRequestPrefillTag';
27+
import { serializeSignRequestSignerInputValidation } from './signRequestSignerInputValidation';
28+
import { deserializeSignRequestSignerInputValidation } from './signRequestSignerInputValidation';
529
import { Date } from '../internal/utils';
30+
import { SignRequestSignerInputEmailValidation } from './signRequestSignerInputEmailValidation';
31+
import { SignRequestSignerInputCustomValidation } from './signRequestSignerInputCustomValidation';
32+
import { SignRequestSignerInputZipValidation } from './signRequestSignerInputZipValidation';
33+
import { SignRequestSignerInputZip4Validation } from './signRequestSignerInputZip4Validation';
34+
import { SignRequestSignerInputSsnValidation } from './signRequestSignerInputSsnValidation';
35+
import { SignRequestSignerInputNumberWithPeriodValidation } from './signRequestSignerInputNumberWithPeriodValidation';
36+
import { SignRequestSignerInputNumberWithCommaValidation } from './signRequestSignerInputNumberWithCommaValidation';
37+
import { SignRequestSignerInputDateIsoValidation } from './signRequestSignerInputDateIsoValidation';
38+
import { SignRequestSignerInputDateUsValidation } from './signRequestSignerInputDateUsValidation';
39+
import { SignRequestSignerInputDateEuValidation } from './signRequestSignerInputDateEuValidation';
40+
import { SignRequestSignerInputDateAsiaValidation } from './signRequestSignerInputDateAsiaValidation';
641
import { SignRequestPrefillTag } from './signRequestPrefillTag';
42+
import { SignRequestSignerInputValidation } from './signRequestSignerInputValidation';
743
import { BoxSdkError } from '../box/errors';
844
import { SerializedData } from '../serialization/json';
945
import { sdIsEmpty } from '../serialization/json';
@@ -47,8 +83,12 @@ export type SignRequestSignerInput = SignRequestPrefillTag & {
4783
* Index of page that the input is on. */
4884
readonly pageIndex: number;
4985
/**
50-
* Whether this input was defined as read-only(immutable by signers) or not. */
86+
* Indicates whether this input is read-only (cannot be modified by signers). */
5187
readonly readOnly?: boolean;
88+
/**
89+
* Specifies the formatting rules that signers must follow for text field inputs.
90+
* If set, this validation is mandatory. */
91+
readonly validation?: SignRequestSignerInputValidation;
5292
};
5393
export function serializeSignRequestSignerInputTypeField(
5494
val: SignRequestSignerInputTypeField
@@ -162,6 +202,10 @@ export function serializeSignRequestSignerInput(
162202
: serializeSignRequestSignerInputContentTypeField(val.contentType),
163203
['page_index']: val.pageIndex,
164204
['read_only']: val.readOnly,
205+
['validation']:
206+
val.validation == void 0
207+
? val.validation
208+
: serializeSignRequestSignerInputValidation(val.validation),
165209
},
166210
};
167211
}
@@ -202,6 +246,10 @@ export function deserializeSignRequestSignerInput(
202246
}
203247
const readOnly: undefined | boolean =
204248
val.read_only == void 0 ? void 0 : val.read_only;
249+
const validation: SignRequestSignerInputValidation | undefined =
250+
val.validation == void 0
251+
? void 0
252+
: deserializeSignRequestSignerInputValidation(val.validation);
205253
if (!(val.document_tag_id == void 0) && !sdIsString(val.document_tag_id)) {
206254
throw new BoxSdkError({
207255
message:
@@ -239,6 +287,7 @@ export function deserializeSignRequestSignerInput(
239287
contentType: contentType,
240288
pageIndex: pageIndex,
241289
readOnly: readOnly,
290+
validation: validation,
242291
documentTagId: documentTagId,
243292
textValue: textValue,
244293
checkboxValue: checkboxValue,
Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
import { BoxSdkError } from '../box/errors';
2+
import { SerializedData } from '../serialization/json';
3+
import { sdIsEmpty } from '../serialization/json';
4+
import { sdIsBoolean } from '../serialization/json';
5+
import { sdIsNumber } from '../serialization/json';
6+
import { sdIsString } from '../serialization/json';
7+
import { sdIsList } from '../serialization/json';
8+
import { sdIsMap } from '../serialization/json';
9+
export type SignRequestSignerInputCustomValidationValidationTypeField =
10+
| 'custom'
11+
| string;
12+
export class SignRequestSignerInputCustomValidation {
13+
/**
14+
* Defines the validation format for the text input as custom.
15+
* A custom regular expression is used for validation. */
16+
readonly validationType: SignRequestSignerInputCustomValidationValidationTypeField =
17+
'custom' as SignRequestSignerInputCustomValidationValidationTypeField;
18+
/**
19+
* Regular expression used for validation. */
20+
readonly customRegex!: string | null;
21+
/**
22+
* Error message shown if input fails custom regular expression validation. */
23+
readonly customErrorMessage!: string | null;
24+
readonly rawData?: SerializedData;
25+
constructor(
26+
fields: Omit<SignRequestSignerInputCustomValidation, 'validationType'> &
27+
Partial<Pick<SignRequestSignerInputCustomValidation, 'validationType'>>
28+
) {
29+
if (fields.validationType !== undefined) {
30+
this.validationType = fields.validationType;
31+
}
32+
if (fields.customRegex !== undefined) {
33+
this.customRegex = fields.customRegex;
34+
}
35+
if (fields.customErrorMessage !== undefined) {
36+
this.customErrorMessage = fields.customErrorMessage;
37+
}
38+
if (fields.rawData !== undefined) {
39+
this.rawData = fields.rawData;
40+
}
41+
}
42+
}
43+
export interface SignRequestSignerInputCustomValidationInput {
44+
/**
45+
* Defines the validation format for the text input as custom.
46+
* A custom regular expression is used for validation. */
47+
readonly validationType?: SignRequestSignerInputCustomValidationValidationTypeField;
48+
/**
49+
* Regular expression used for validation. */
50+
readonly customRegex: string | null;
51+
/**
52+
* Error message shown if input fails custom regular expression validation. */
53+
readonly customErrorMessage: string | null;
54+
readonly rawData?: SerializedData;
55+
}
56+
export function serializeSignRequestSignerInputCustomValidationValidationTypeField(
57+
val: SignRequestSignerInputCustomValidationValidationTypeField
58+
): SerializedData {
59+
return val;
60+
}
61+
export function deserializeSignRequestSignerInputCustomValidationValidationTypeField(
62+
val: SerializedData
63+
): SignRequestSignerInputCustomValidationValidationTypeField {
64+
if (val == 'custom') {
65+
return val;
66+
}
67+
if (sdIsString(val)) {
68+
return val;
69+
}
70+
throw new BoxSdkError({
71+
message:
72+
"Can't deserialize SignRequestSignerInputCustomValidationValidationTypeField",
73+
});
74+
}
75+
export function serializeSignRequestSignerInputCustomValidation(
76+
val: SignRequestSignerInputCustomValidation
77+
): SerializedData {
78+
return {
79+
['validation_type']:
80+
serializeSignRequestSignerInputCustomValidationValidationTypeField(
81+
val.validationType
82+
),
83+
['custom_regex']: val.customRegex,
84+
['custom_error_message']: val.customErrorMessage,
85+
};
86+
}
87+
export function deserializeSignRequestSignerInputCustomValidation(
88+
val: SerializedData
89+
): SignRequestSignerInputCustomValidation {
90+
if (!sdIsMap(val)) {
91+
throw new BoxSdkError({
92+
message: 'Expecting a map for "SignRequestSignerInputCustomValidation"',
93+
});
94+
}
95+
if (val.validation_type == void 0) {
96+
throw new BoxSdkError({
97+
message:
98+
'Expecting "validation_type" of type "SignRequestSignerInputCustomValidation" to be defined',
99+
});
100+
}
101+
const validationType: SignRequestSignerInputCustomValidationValidationTypeField =
102+
deserializeSignRequestSignerInputCustomValidationValidationTypeField(
103+
val.validation_type
104+
);
105+
if (val.custom_regex == void 0) {
106+
throw new BoxSdkError({
107+
message:
108+
'Expecting "custom_regex" of type "SignRequestSignerInputCustomValidation" to be defined',
109+
});
110+
}
111+
if (!sdIsString(val.custom_regex)) {
112+
throw new BoxSdkError({
113+
message:
114+
'Expecting string for "custom_regex" of type "SignRequestSignerInputCustomValidation"',
115+
});
116+
}
117+
const customRegex: string = val.custom_regex;
118+
if (val.custom_error_message == void 0) {
119+
throw new BoxSdkError({
120+
message:
121+
'Expecting "custom_error_message" of type "SignRequestSignerInputCustomValidation" to be defined',
122+
});
123+
}
124+
if (!sdIsString(val.custom_error_message)) {
125+
throw new BoxSdkError({
126+
message:
127+
'Expecting string for "custom_error_message" of type "SignRequestSignerInputCustomValidation"',
128+
});
129+
}
130+
const customErrorMessage: string = val.custom_error_message;
131+
return {
132+
validationType: validationType,
133+
customRegex: customRegex,
134+
customErrorMessage: customErrorMessage,
135+
} satisfies SignRequestSignerInputCustomValidation;
136+
}
137+
export function serializeSignRequestSignerInputCustomValidationInput(
138+
val: SignRequestSignerInputCustomValidationInput
139+
): SerializedData {
140+
return {
141+
['validationType']:
142+
val.validationType == void 0
143+
? val.validationType
144+
: serializeSignRequestSignerInputCustomValidationValidationTypeField(
145+
val.validationType
146+
),
147+
['custom_regex']: val.customRegex,
148+
['custom_error_message']: val.customErrorMessage,
149+
};
150+
}
151+
export function deserializeSignRequestSignerInputCustomValidationInput(
152+
val: SerializedData
153+
): SignRequestSignerInputCustomValidationInput {
154+
if (!sdIsMap(val)) {
155+
throw new BoxSdkError({
156+
message:
157+
'Expecting a map for "SignRequestSignerInputCustomValidationInput"',
158+
});
159+
}
160+
const validationType:
161+
| undefined
162+
| SignRequestSignerInputCustomValidationValidationTypeField =
163+
val.validationType == void 0
164+
? void 0
165+
: deserializeSignRequestSignerInputCustomValidationValidationTypeField(
166+
val.validationType
167+
);
168+
if (val.custom_regex == void 0) {
169+
throw new BoxSdkError({
170+
message:
171+
'Expecting "custom_regex" of type "SignRequestSignerInputCustomValidationInput" to be defined',
172+
});
173+
}
174+
if (!sdIsString(val.custom_regex)) {
175+
throw new BoxSdkError({
176+
message:
177+
'Expecting string for "custom_regex" of type "SignRequestSignerInputCustomValidationInput"',
178+
});
179+
}
180+
const customRegex: string = val.custom_regex;
181+
if (val.custom_error_message == void 0) {
182+
throw new BoxSdkError({
183+
message:
184+
'Expecting "custom_error_message" of type "SignRequestSignerInputCustomValidationInput" to be defined',
185+
});
186+
}
187+
if (!sdIsString(val.custom_error_message)) {
188+
throw new BoxSdkError({
189+
message:
190+
'Expecting string for "custom_error_message" of type "SignRequestSignerInputCustomValidationInput"',
191+
});
192+
}
193+
const customErrorMessage: string = val.custom_error_message;
194+
return {
195+
validationType: validationType,
196+
customRegex: customRegex,
197+
customErrorMessage: customErrorMessage,
198+
} satisfies SignRequestSignerInputCustomValidationInput;
199+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import { BoxSdkError } from '../box/errors';
2+
import { SerializedData } from '../serialization/json';
3+
import { sdIsEmpty } from '../serialization/json';
4+
import { sdIsBoolean } from '../serialization/json';
5+
import { sdIsNumber } from '../serialization/json';
6+
import { sdIsString } from '../serialization/json';
7+
import { sdIsList } from '../serialization/json';
8+
import { sdIsMap } from '../serialization/json';
9+
export type SignRequestSignerInputDateAsiaValidationValidationTypeField =
10+
| 'date_asia'
11+
| string;
12+
export interface SignRequestSignerInputDateAsiaValidation {
13+
/**
14+
* Validates that the text input uses the Asian date format `YYYY/MM/DD`. */
15+
readonly validationType?: SignRequestSignerInputDateAsiaValidationValidationTypeField;
16+
readonly rawData?: SerializedData;
17+
}
18+
export function serializeSignRequestSignerInputDateAsiaValidationValidationTypeField(
19+
val: SignRequestSignerInputDateAsiaValidationValidationTypeField
20+
): SerializedData {
21+
return val;
22+
}
23+
export function deserializeSignRequestSignerInputDateAsiaValidationValidationTypeField(
24+
val: SerializedData
25+
): SignRequestSignerInputDateAsiaValidationValidationTypeField {
26+
if (val == 'date_asia') {
27+
return val;
28+
}
29+
if (sdIsString(val)) {
30+
return val;
31+
}
32+
throw new BoxSdkError({
33+
message:
34+
"Can't deserialize SignRequestSignerInputDateAsiaValidationValidationTypeField",
35+
});
36+
}
37+
export function serializeSignRequestSignerInputDateAsiaValidation(
38+
val: SignRequestSignerInputDateAsiaValidation
39+
): SerializedData {
40+
return {
41+
['validation_type']:
42+
val.validationType == void 0
43+
? val.validationType
44+
: serializeSignRequestSignerInputDateAsiaValidationValidationTypeField(
45+
val.validationType
46+
),
47+
};
48+
}
49+
export function deserializeSignRequestSignerInputDateAsiaValidation(
50+
val: SerializedData
51+
): SignRequestSignerInputDateAsiaValidation {
52+
if (!sdIsMap(val)) {
53+
throw new BoxSdkError({
54+
message: 'Expecting a map for "SignRequestSignerInputDateAsiaValidation"',
55+
});
56+
}
57+
const validationType:
58+
| undefined
59+
| SignRequestSignerInputDateAsiaValidationValidationTypeField =
60+
val.validation_type == void 0
61+
? void 0
62+
: deserializeSignRequestSignerInputDateAsiaValidationValidationTypeField(
63+
val.validation_type
64+
);
65+
return {
66+
validationType: validationType,
67+
} satisfies SignRequestSignerInputDateAsiaValidation;
68+
}

0 commit comments

Comments
 (0)