added parameter schemas

This commit is contained in:
Ryan
2021-04-11 13:31:53 -04:00
parent 2918165361
commit 6e1cdfe7c5
5 changed files with 72 additions and 2 deletions

View File

@ -1,6 +1,5 @@
package org.leafygreens.kompendium package org.leafygreens.kompendium
import java.net.URI
import org.leafygreens.kompendium.models.OpenApiSpec import org.leafygreens.kompendium.models.OpenApiSpec
class Kompendium { class Kompendium {

View File

@ -0,0 +1,14 @@
package org.leafygreens.kompendium.models
sealed class OpenApiSpecParameterSchema(
val type: String,
)
data class OpenApiSpecParameterSchemaArray<T: OpenApiSpecParameterSchema >(
val items: T
) : OpenApiSpecParameterSchema("array")
data class OpenApiSpecParameterSchemaString(
val default: String,
val `enum`: Set<String>? = null
) : OpenApiSpecParameterSchema("string")

View File

@ -27,7 +27,10 @@ data class OpenApiSpecParameter(
val description: String?, val description: String?,
val required: Boolean = true, val required: Boolean = true,
val deprecated: Boolean = false, val deprecated: Boolean = false,
val allowEmptyValue: Boolean = false val allowEmptyValue: Boolean = false,
val style: String? = null,
val explode: Boolean? = false,
val schema: OpenApiSpecParameterSchema? = null
) : OpenApiSpecReferencable() ) : OpenApiSpecReferencable()
data class OpenApiSpecRequest( data class OpenApiSpecRequest(

View File

@ -8,6 +8,9 @@ import org.leafygreens.kompendium.models.OpenApiSpecInfo
import org.leafygreens.kompendium.models.OpenApiSpecInfoContact import org.leafygreens.kompendium.models.OpenApiSpecInfoContact
import org.leafygreens.kompendium.models.OpenApiSpecInfoLicense import org.leafygreens.kompendium.models.OpenApiSpecInfoLicense
import org.leafygreens.kompendium.models.OpenApiSpecMediaType import org.leafygreens.kompendium.models.OpenApiSpecMediaType
import org.leafygreens.kompendium.models.OpenApiSpecParameter
import org.leafygreens.kompendium.models.OpenApiSpecParameterSchemaArray
import org.leafygreens.kompendium.models.OpenApiSpecParameterSchemaString
import org.leafygreens.kompendium.models.OpenApiSpecPathItem import org.leafygreens.kompendium.models.OpenApiSpecPathItem
import org.leafygreens.kompendium.models.OpenApiSpecPathItemOperation import org.leafygreens.kompendium.models.OpenApiSpecPathItemOperation
import org.leafygreens.kompendium.models.OpenApiSpecReferenceObject import org.leafygreens.kompendium.models.OpenApiSpecReferenceObject
@ -139,6 +142,30 @@ object TestData {
), ),
`x-codegen-request-body-name` = "body" `x-codegen-request-body-name` = "body"
) )
),
"/pet/findByStatus" to OpenApiSpecPathItem(
get = OpenApiSpecPathItemOperation(
tags = setOf("pet"),
summary = "Find Pets by status",
description = "Multiple status values can be provided with comma separated strings",
operationId = "findPetsByStatus",
parameters = listOf(
OpenApiSpecParameter(
name = "status",
`in` = "query",
description = "Status values that need to be considered for filter",
required = true,
style = "form",
explode = true,
schema = OpenApiSpecParameterSchemaArray(
items = OpenApiSpecParameterSchemaString(
default = "available",
`enum` = setOf("available", "pending", "sold")
)
)
)
)
)
) )
) )
) )

View File

@ -93,6 +93,33 @@
} ], } ],
"x-codegen-request-body-name" : "body" "x-codegen-request-body-name" : "body"
} }
},
"/pet/findByStatus" : {
"get" : {
"tags" : [ "pet" ],
"summary" : "Find Pets by status",
"description" : "Multiple status values can be provided with comma separated strings",
"operationId" : "findPetsByStatus",
"parameters" : [ {
"name" : "status",
"in" : "query",
"description" : "Status values that need to be considered for filter",
"required" : true,
"deprecated" : false,
"allowEmptyValue" : false,
"style" : "form",
"explode" : true,
"schema" : {
"items" : {
"default" : "available",
"enum" : [ "available", "pending", "sold" ],
"type" : "string"
},
"type" : "array"
}
} ],
"deprecated" : false
}
} }
}, },
"security" : { }, "security" : { },