com.reprezen.genflow.openapi3.doc.ExamplesHelper.xtend Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of openapi3-doc Show documentation
Show all versions of openapi3-doc Show documentation
RepreZen Documentation GenTemplate for OpenAPI v3 Models
The newest version!
package com.reprezen.genflow.openapi3.doc
import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
import com.reprezen.kaizen.oasparser.model3.Example
import com.reprezen.kaizen.oasparser.model3.MediaType
class ExamplesHelper implements Helper {
extension HtmlHelper htmlHelper
extension DocHelper docHelper
val static ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory)
override init() {
htmlHelper = HelperHelper.htmlHelper
docHelper = HelperHelper.docHelper
}
def String renderExamples(MediaType mediaType) {
mediaType.examples?.keySet?.map[name|
mediaType.examples.get(name).render(name)
]?.examplesSection
}
def String renderExample(MediaType mediaType) {
mediaType.example?.exampleText?.exampleSection
}
def private String render(Example example, String name) {
'''
«name»
«IF example.summary !== null»«example.summary.htmlEscape»
«ENDIF»
«IF example.description !== null»«example.description.docHtml»«ENDIF»
«IF example.externalValue !== null»External Value: «example.externalValue.htmlEscape»
«ENDIF»
«example?.value?.exampleText»
'''
}
def private String exampleText(Object value) {
val content = switch (value) {
String:
value
default:
yamlMapper.writerWithDefaultPrettyPrinter.writeValueAsString(yamlMapper.convertValue(value, JsonNode))
}
'''
«content.htmlEscape»
'''
}
def private String exampleSection(String html) {
'''
Example
«html»
'''
}
def private String examplesSection(Iterable examples) {
if (examples.empty) ""
else
'''
Examples
«FOR example : examples»
«example»
«ENDFOR»
'''
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy