Skip to content

Commit 046758b

Browse files
committed
feat: text input validation for Box Sign (box/box-openapi#568)
1 parent 14244b7 commit 046758b

File tree

26 files changed

+2472
-7
lines changed

26 files changed

+2472
-7
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": "5.2.0" }
1+
{ "engineHash": "f97463c", "specHash": "b7abe0d", "version": "5.2.0" }

src/main/java/com/box/sdkgen/schemas/signrequestsignerinput/SignRequestSignerInput.java

Lines changed: 101 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
package com.box.sdkgen.schemas.signrequestsignerinput;
22

33
import com.box.sdkgen.schemas.signrequestprefilltag.SignRequestPrefillTag;
4+
import com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation.SignRequestSignerInputCustomValidation;
5+
import com.box.sdkgen.schemas.signrequestsignerinputdateasiavalidation.SignRequestSignerInputDateAsiaValidation;
6+
import com.box.sdkgen.schemas.signrequestsignerinputdateeuvalidation.SignRequestSignerInputDateEuValidation;
7+
import com.box.sdkgen.schemas.signrequestsignerinputdateisovalidation.SignRequestSignerInputDateIsoValidation;
8+
import com.box.sdkgen.schemas.signrequestsignerinputdateusvalidation.SignRequestSignerInputDateUsValidation;
9+
import com.box.sdkgen.schemas.signrequestsignerinputemailvalidation.SignRequestSignerInputEmailValidation;
10+
import com.box.sdkgen.schemas.signrequestsignerinputnumberwithcommavalidation.SignRequestSignerInputNumberWithCommaValidation;
11+
import com.box.sdkgen.schemas.signrequestsignerinputnumberwithperiodvalidation.SignRequestSignerInputNumberWithPeriodValidation;
12+
import com.box.sdkgen.schemas.signrequestsignerinputssnvalidation.SignRequestSignerInputSsnValidation;
13+
import com.box.sdkgen.schemas.signrequestsignerinputvalidation.SignRequestSignerInputValidation;
14+
import com.box.sdkgen.schemas.signrequestsignerinputzip4validation.SignRequestSignerInputZip4Validation;
15+
import com.box.sdkgen.schemas.signrequestsignerinputzipvalidation.SignRequestSignerInputZipValidation;
416
import com.box.sdkgen.serialization.json.EnumWrapper;
517
import com.fasterxml.jackson.annotation.JsonFilter;
618
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -36,10 +48,16 @@ public class SignRequestSignerInput extends SignRequestPrefillTag {
3648
@JsonProperty("page_index")
3749
protected final long pageIndex;
3850

39-
/** Whether this input was defined as read-only(immutable by signers) or not. */
51+
/** Indicates whether this input is read-only (cannot be modified by signers). */
4052
@JsonProperty("read_only")
4153
protected Boolean readOnly;
4254

55+
/**
56+
* Specifies the formatting rules that signers must follow for text field inputs. If set, this
57+
* validation is mandatory.
58+
*/
59+
protected SignRequestSignerInputValidation validation;
60+
4361
public SignRequestSignerInput(@JsonProperty("page_index") long pageIndex) {
4462
super();
4563
this.pageIndex = pageIndex;
@@ -51,6 +69,7 @@ protected SignRequestSignerInput(Builder builder) {
5169
this.contentType = builder.contentType;
5270
this.pageIndex = builder.pageIndex;
5371
this.readOnly = builder.readOnly;
72+
this.validation = builder.validation;
5473
markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
5574
}
5675

@@ -70,6 +89,10 @@ public Boolean getReadOnly() {
7089
return readOnly;
7190
}
7291

92+
public SignRequestSignerInputValidation getValidation() {
93+
return validation;
94+
}
95+
7396
@Override
7497
public boolean equals(Object o) {
7598
if (this == o) {
@@ -86,13 +109,22 @@ public boolean equals(Object o) {
86109
&& Objects.equals(type, casted.type)
87110
&& Objects.equals(contentType, casted.contentType)
88111
&& Objects.equals(pageIndex, casted.pageIndex)
89-
&& Objects.equals(readOnly, casted.readOnly);
112+
&& Objects.equals(readOnly, casted.readOnly)
113+
&& Objects.equals(validation, casted.validation);
90114
}
91115

92116
@Override
93117
public int hashCode() {
94118
return Objects.hash(
95-
documentTagId, textValue, checkboxValue, dateValue, type, contentType, pageIndex, readOnly);
119+
documentTagId,
120+
textValue,
121+
checkboxValue,
122+
dateValue,
123+
type,
124+
contentType,
125+
pageIndex,
126+
readOnly,
127+
validation);
96128
}
97129

98130
@Override
@@ -129,6 +161,10 @@ public String toString() {
129161
+ "readOnly='"
130162
+ readOnly
131163
+ '\''
164+
+ ", "
165+
+ "validation='"
166+
+ validation
167+
+ '\''
132168
+ "}";
133169
}
134170

@@ -142,6 +178,8 @@ public static class Builder extends SignRequestPrefillTag.Builder {
142178

143179
protected Boolean readOnly;
144180

181+
protected SignRequestSignerInputValidation validation;
182+
145183
public Builder(long pageIndex) {
146184
super();
147185
this.pageIndex = pageIndex;
@@ -172,6 +210,66 @@ public Builder readOnly(Boolean readOnly) {
172210
return this;
173211
}
174212

213+
public Builder validation(SignRequestSignerInputEmailValidation validation) {
214+
this.validation = new SignRequestSignerInputValidation(validation);
215+
return this;
216+
}
217+
218+
public Builder validation(SignRequestSignerInputCustomValidation validation) {
219+
this.validation = new SignRequestSignerInputValidation(validation);
220+
return this;
221+
}
222+
223+
public Builder validation(SignRequestSignerInputZipValidation validation) {
224+
this.validation = new SignRequestSignerInputValidation(validation);
225+
return this;
226+
}
227+
228+
public Builder validation(SignRequestSignerInputZip4Validation validation) {
229+
this.validation = new SignRequestSignerInputValidation(validation);
230+
return this;
231+
}
232+
233+
public Builder validation(SignRequestSignerInputSsnValidation validation) {
234+
this.validation = new SignRequestSignerInputValidation(validation);
235+
return this;
236+
}
237+
238+
public Builder validation(SignRequestSignerInputNumberWithPeriodValidation validation) {
239+
this.validation = new SignRequestSignerInputValidation(validation);
240+
return this;
241+
}
242+
243+
public Builder validation(SignRequestSignerInputNumberWithCommaValidation validation) {
244+
this.validation = new SignRequestSignerInputValidation(validation);
245+
return this;
246+
}
247+
248+
public Builder validation(SignRequestSignerInputDateIsoValidation validation) {
249+
this.validation = new SignRequestSignerInputValidation(validation);
250+
return this;
251+
}
252+
253+
public Builder validation(SignRequestSignerInputDateUsValidation validation) {
254+
this.validation = new SignRequestSignerInputValidation(validation);
255+
return this;
256+
}
257+
258+
public Builder validation(SignRequestSignerInputDateEuValidation validation) {
259+
this.validation = new SignRequestSignerInputValidation(validation);
260+
return this;
261+
}
262+
263+
public Builder validation(SignRequestSignerInputDateAsiaValidation validation) {
264+
this.validation = new SignRequestSignerInputValidation(validation);
265+
return this;
266+
}
267+
268+
public Builder validation(SignRequestSignerInputValidation validation) {
269+
this.validation = validation;
270+
return this;
271+
}
272+
175273
@Override
176274
public Builder documentTagId(String documentTagId) {
177275
this.documentTagId = documentTagId;
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
package com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation;
2+
3+
import static com.box.sdkgen.internal.utils.UtilsManager.setOf;
4+
5+
import com.box.sdkgen.internal.Nullable;
6+
import com.box.sdkgen.internal.NullableFieldTracker;
7+
import com.box.sdkgen.internal.SerializableObject;
8+
import com.box.sdkgen.serialization.json.EnumWrapper;
9+
import com.fasterxml.jackson.annotation.JsonFilter;
10+
import com.fasterxml.jackson.annotation.JsonProperty;
11+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
12+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
13+
import java.util.Objects;
14+
15+
/**
16+
* Specifies the custom validation rules for a text field input by the signer. If set, this
17+
* validation is mandatory.
18+
*/
19+
@JsonFilter("nullablePropertyFilter")
20+
public class SignRequestSignerInputCustomValidation extends SerializableObject {
21+
22+
/**
23+
* Defines the validation format for the text input as custom. A custom regular expression is used
24+
* for validation.
25+
*/
26+
@JsonDeserialize(
27+
using =
28+
SignRequestSignerInputCustomValidationValidationTypeField
29+
.SignRequestSignerInputCustomValidationValidationTypeFieldDeserializer.class)
30+
@JsonSerialize(
31+
using =
32+
SignRequestSignerInputCustomValidationValidationTypeField
33+
.SignRequestSignerInputCustomValidationValidationTypeFieldSerializer.class)
34+
@JsonProperty("validation_type")
35+
protected EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField> validationType;
36+
37+
/** Regular expression used for validation. */
38+
@JsonProperty("custom_regex")
39+
@Nullable
40+
protected final String customRegex;
41+
42+
/** Error message shown if input fails custom regular expression validation. */
43+
@JsonProperty("custom_error_message")
44+
@Nullable
45+
protected final String customErrorMessage;
46+
47+
public SignRequestSignerInputCustomValidation(
48+
@JsonProperty("custom_regex") String customRegex,
49+
@JsonProperty("custom_error_message") String customErrorMessage) {
50+
super();
51+
this.customRegex = customRegex;
52+
this.customErrorMessage = customErrorMessage;
53+
this.validationType =
54+
new EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField>(
55+
SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM);
56+
markNullableFieldsAsSet(setOf("custom_regex", "custom_error_message"));
57+
}
58+
59+
protected SignRequestSignerInputCustomValidation(Builder builder) {
60+
super();
61+
this.validationType = builder.validationType;
62+
this.customRegex = builder.customRegex;
63+
this.customErrorMessage = builder.customErrorMessage;
64+
markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
65+
}
66+
67+
public EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField>
68+
getValidationType() {
69+
return validationType;
70+
}
71+
72+
public String getCustomRegex() {
73+
return customRegex;
74+
}
75+
76+
public String getCustomErrorMessage() {
77+
return customErrorMessage;
78+
}
79+
80+
@Override
81+
public boolean equals(Object o) {
82+
if (this == o) {
83+
return true;
84+
}
85+
if (o == null || getClass() != o.getClass()) {
86+
return false;
87+
}
88+
SignRequestSignerInputCustomValidation casted = (SignRequestSignerInputCustomValidation) o;
89+
return Objects.equals(validationType, casted.validationType)
90+
&& Objects.equals(customRegex, casted.customRegex)
91+
&& Objects.equals(customErrorMessage, casted.customErrorMessage);
92+
}
93+
94+
@Override
95+
public int hashCode() {
96+
return Objects.hash(validationType, customRegex, customErrorMessage);
97+
}
98+
99+
@Override
100+
public String toString() {
101+
return "SignRequestSignerInputCustomValidation{"
102+
+ "validationType='"
103+
+ validationType
104+
+ '\''
105+
+ ", "
106+
+ "customRegex='"
107+
+ customRegex
108+
+ '\''
109+
+ ", "
110+
+ "customErrorMessage='"
111+
+ customErrorMessage
112+
+ '\''
113+
+ "}";
114+
}
115+
116+
public static class Builder extends NullableFieldTracker {
117+
118+
protected EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField> validationType;
119+
120+
protected final String customRegex;
121+
122+
protected final String customErrorMessage;
123+
124+
public Builder(String customRegex, String customErrorMessage) {
125+
super();
126+
this.customRegex = customRegex;
127+
this.customErrorMessage = customErrorMessage;
128+
this.validationType =
129+
new EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField>(
130+
SignRequestSignerInputCustomValidationValidationTypeField.CUSTOM);
131+
markNullableFieldsAsSet(setOf("custom_regex", "custom_error_message"));
132+
}
133+
134+
public Builder validationType(
135+
SignRequestSignerInputCustomValidationValidationTypeField validationType) {
136+
this.validationType =
137+
new EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField>(
138+
validationType);
139+
return this;
140+
}
141+
142+
public Builder validationType(
143+
EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField> validationType) {
144+
this.validationType = validationType;
145+
return this;
146+
}
147+
148+
public SignRequestSignerInputCustomValidation build() {
149+
return new SignRequestSignerInputCustomValidation(this);
150+
}
151+
}
152+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package com.box.sdkgen.schemas.signrequestsignerinputcustomvalidation;
2+
3+
import com.box.sdkgen.serialization.json.EnumWrapper;
4+
import com.box.sdkgen.serialization.json.Valuable;
5+
import com.fasterxml.jackson.core.JsonGenerator;
6+
import com.fasterxml.jackson.core.JsonParser;
7+
import com.fasterxml.jackson.databind.DeserializationContext;
8+
import com.fasterxml.jackson.databind.JsonDeserializer;
9+
import com.fasterxml.jackson.databind.JsonSerializer;
10+
import com.fasterxml.jackson.databind.SerializerProvider;
11+
import java.io.IOException;
12+
import java.util.Arrays;
13+
14+
public enum SignRequestSignerInputCustomValidationValidationTypeField implements Valuable {
15+
CUSTOM("custom");
16+
17+
private final String value;
18+
19+
SignRequestSignerInputCustomValidationValidationTypeField(String value) {
20+
this.value = value;
21+
}
22+
23+
public String getValue() {
24+
return value;
25+
}
26+
27+
public static class SignRequestSignerInputCustomValidationValidationTypeFieldDeserializer
28+
extends JsonDeserializer<
29+
EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField>> {
30+
31+
public SignRequestSignerInputCustomValidationValidationTypeFieldDeserializer() {
32+
super();
33+
}
34+
35+
@Override
36+
public EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField> deserialize(
37+
JsonParser p, DeserializationContext ctxt) throws IOException {
38+
String value = p.getValueAsString();
39+
return Arrays.stream(SignRequestSignerInputCustomValidationValidationTypeField.values())
40+
.filter((v) -> v.getValue().equalsIgnoreCase(value))
41+
.findFirst()
42+
.map(EnumWrapper::new)
43+
.orElse(
44+
new EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField>(value));
45+
}
46+
}
47+
48+
public static class SignRequestSignerInputCustomValidationValidationTypeFieldSerializer
49+
extends JsonSerializer<
50+
EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField>> {
51+
52+
public SignRequestSignerInputCustomValidationValidationTypeFieldSerializer() {
53+
super();
54+
}
55+
56+
@Override
57+
public void serialize(
58+
EnumWrapper<SignRequestSignerInputCustomValidationValidationTypeField> value,
59+
JsonGenerator gen,
60+
SerializerProvider serializers)
61+
throws IOException {
62+
gen.writeString(value.getStringValue());
63+
}
64+
}
65+
}

0 commit comments

Comments
 (0)