Skip to content

Commit 4c735ca

Browse files
authored
feat: apply field optional (#244)
* feat: apply field optional * fix lint
1 parent de0c1ab commit 4c735ca

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

restdocs-api-spec-jsonschema/src/main/kotlin/com/epages/restdocs/apispec/jsonschema/ConstraintResolver.kt

+4-3
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,10 @@ internal object ConstraintResolver {
8282
.minOrNull()
8383
}
8484

85-
internal fun isRequired(fieldDescriptor: FieldDescriptor): Boolean =
86-
findConstraints(fieldDescriptor)
87-
.any { constraint -> REQUIRED_CONSTRAINTS.contains(constraint.name) }
85+
internal fun isRequired(fieldDescriptor: FieldDescriptor): Boolean = findConstraints(fieldDescriptor)
86+
.any { constraint ->
87+
REQUIRED_CONSTRAINTS.contains(constraint.name)
88+
} || !fieldDescriptor.optional
8889

8990
private fun findConstraints(fieldDescriptor: FieldDescriptor): List<Constraint> =
9091
fieldDescriptor.attributes.validationConstraints

restdocs-api-spec-jsonschema/src/test/kotlin/com/epages/restdocs/apispec/jsonschema/JsonSchemaFromFieldDescriptorsGeneratorTest.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -655,7 +655,7 @@ class JsonSchemaFromFieldDescriptorsGeneratorTest {
655655
),
656656

657657
FieldDescriptor("lineItems[*].quantity.unit", "some", "STRING"),
658-
FieldDescriptor("shippingAddress", "some", "OBJECT"),
658+
FieldDescriptor("shippingAddress", "some", "OBJECT", true),
659659
FieldDescriptor("billingAddress", "some", "OBJECT"),
660660
FieldDescriptor(
661661
"billingAddress.firstName", "some", "STRING",
@@ -732,6 +732,7 @@ class JsonSchemaFromFieldDescriptorsGeneratorTest {
732732
"pagePositive",
733733
"some",
734734
"NUMBER",
735+
true,
735736
attributes = Attributes(
736737
listOf(
737738
Constraint(

0 commit comments

Comments
 (0)