Skip to content

Commit

Permalink
allow parametrization by the media type of contentExamples
Browse files Browse the repository at this point in the history
  • Loading branch information
ffprivacy committed Jan 24, 2025
1 parent 5418a2a commit e61983a
Showing 1 changed file with 12 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -136,16 +136,18 @@ object OpenAPIGen {
)

def contentExamples: Map[String, OpenAPI.ReferenceOr.Or[OpenAPI.Example]] =
contentExamples(genExamples = false)
contentExamples(mediaType = MediaType.application.json, genExamples = false)

def contentExamples(genExamples: Boolean): Map[String, OpenAPI.ReferenceOr.Or[OpenAPI.Example]] =
def contentExamples(
mediaType: MediaType,
genExamples: Boolean,
): Map[String, OpenAPI.ReferenceOr.Or[OpenAPI.Example]] =
content.flatMap {
case mc @ MetaCodec(HttpCodec.Content(codec, _, _), _) if codec.lookup(MediaType.application.json).isDefined =>
mc.examples(codec.lookup(MediaType.application.json).get._2.schema, genExamples)
case mc @ MetaCodec(HttpCodec.ContentStream(codec, _, _), _)
if codec.lookup(MediaType.application.json).isDefined =>
mc.examples(codec.lookup(MediaType.application.json).get._2.schema, genExamples)
case _ =>
case mc @ MetaCodec(HttpCodec.Content(codec, _, _), _) if codec.lookup(mediaType).isDefined =>
mc.examples(codec.lookup(mediaType).get._2.schema, genExamples)
case mc @ MetaCodec(HttpCodec.ContentStream(codec, _, _), _) if codec.lookup(mediaType).isDefined =>
mc.examples(codec.lookup(mediaType).get._2.schema, genExamples)
case _ =>
Map.empty[String, OpenAPI.ReferenceOr.Or[OpenAPI.Example]]
}.toMap

Expand Down Expand Up @@ -728,7 +730,7 @@ object OpenAPIGen {
val mediaTypeResponses = mediaTypes.map { case (mediaType, (schema, atomized)) =>
mediaType.fullType -> OpenAPI.MediaType(
schema = OpenAPI.ReferenceOr.Or(schema),
examples = atomized.contentExamples(genExamples),
examples = atomized.contentExamples(mediaType, genExamples),
encoding = Map.empty,
)
}
Expand Down Expand Up @@ -1117,7 +1119,7 @@ object OpenAPIGen {
val mediaTypeResponses = mediaTypes.map { case (mediaType, (schema, atomized)) =>
mediaType.fullType -> OpenAPI.MediaType(
schema = OpenAPI.ReferenceOr.Or(schema),
examples = atomized.contentExamples(genExamples),
examples = atomized.contentExamples(mediaType, genExamples),
encoding = Map.empty,
)
}
Expand Down

0 comments on commit e61983a

Please sign in to comment.