
com.reprezen.genflow.swagger.doc.ParamDoc.xtend Maven / Gradle / Ivy
The newest version!
package com.reprezen.genflow.swagger.doc
import io.swagger.models.Swagger
import io.swagger.models.parameters.BodyParameter
import io.swagger.models.parameters.Parameter
class ParamDoc {
extension SchemaHelper = HelperHelper.schemaHelper
extension DocHelper = HelperHelper.docHelper
extension HtmlHelper = HelperHelper.htmlHelper;
extension ExamplesHelper = HelperHelper.examplesHelper
val String name
val Swagger swagger = HelperHelper.swagger
new(Swagger swagger, String name) {
this.name = name
}
def getHtml() {
val param = swagger.parameters.get(name)
'''
«name»
«swagger.parameters.get(name).paramHtml»
'''
}
def paramHtml(Parameter param) {
switch param.in {
case "body": bodyParamHtml(param)
default: nonBodyParamHtml(param)
}
}
def bodyParamHtml(Parameter param) {
val bodyParam = param as BodyParameter
'''
«param.description.docHtml»
«bodyParam.schema.renderSchema»
«bodyParam.examples.renderExamples»
'''
}
def nonBodyParamHtml(Parameter param) {
val table = StructureTable::get(swagger, #["name", "Name"], #["in", "In"], #["default", "Default"],
#["type", "Type"], #["doc", "Description"])
table.render(param, param.name, null)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy