diff --git a/openapi/src/OpenAPI.kt b/openapi/src/OpenAPI.kt index 3392e8d..11fcc68 100644 --- a/openapi/src/OpenAPI.kt +++ b/openapi/src/OpenAPI.kt @@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.Operation import io.swagger.v3.oas.annotations.Parameter import io.swagger.v3.oas.annotations.enums.ParameterIn import io.swagger.v3.oas.annotations.info.Info -import io.swagger.v3.oas.annotations.media.Schema.AccessMode +import io.swagger.v3.oas.annotations.media.Schema.* import io.swagger.v3.oas.annotations.parameters.RequestBody import io.swagger.v3.oas.annotations.responses.ApiResponse import io.swagger.v3.oas.annotations.security.SecurityRequirement @@ -161,7 +161,7 @@ private fun List.toSecurity() = map { mapOf(it.name to it.s internal fun T.toNonEmptyValues(filter: (KProperty1) -> Boolean = { true }): MutableMap = HashMap().also { map -> publicProperties.filter(filter).forEach { p -> when(val v = p.valueOf(this)) { - "", false, 0, Int.MAX_VALUE, Int.MIN_VALUE, 0.0, Void::class.java, AccessMode.AUTO -> null + "", false, 0, Int.MAX_VALUE, Int.MIN_VALUE, 0.0, Void::class.java, AccessMode.AUTO, RequiredMode.AUTO, AdditionalPropertiesValue.USE_ADDITIONAL_PROPERTIES_ANNOTATION -> null is Enum<*> -> v.takeIf { v.name != "DEFAULT" } is Annotation -> v.toNonEmptyValues().takeIf { it.isNotEmpty() } is Array<*> -> v.map { (it as? Annotation)?.toNonEmptyValues() ?: it }.takeIf { it.isNotEmpty() }