From 4b91c9418059952ac0d93b7ccc30288e23444aa0 Mon Sep 17 00:00:00 2001 From: Nicolas Torres Date: Mon, 30 May 2022 11:47:08 +0200 Subject: [PATCH] Does not create example from schema if there are examples present --- .../oss/codegen/doc/BoatExampleUtils.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/boat-scaffold/src/main/java/com/backbase/oss/codegen/doc/BoatExampleUtils.java b/boat-scaffold/src/main/java/com/backbase/oss/codegen/doc/BoatExampleUtils.java index 08435a1ef..b0b4e0a67 100644 --- a/boat-scaffold/src/main/java/com/backbase/oss/codegen/doc/BoatExampleUtils.java +++ b/boat-scaffold/src/main/java/com/backbase/oss/codegen/doc/BoatExampleUtils.java @@ -59,14 +59,21 @@ public static void convertExamples(OpenAPI openAPI, MediaType mediaType, String } private static void processRef(OpenAPI openAPI, String contentType, List examples, String ref) { - if (ref.startsWith("#/components/schemas")) { - ref = StringUtils.substringAfterLast(ref, "/"); + if (!examples.isEmpty()) return; // No auto-generated example from the schema if examples are already present. + if (!ref.startsWith("#/components/schemas")) return; - if (openAPI.getComponents().getSchemas() != null && openAPI.getComponents().getSchemas().get(ref) != null && openAPI.getComponents().getSchemas().get(ref).getExample() != null) { - Object example = openAPI.getComponents().getSchemas().get(ref).getExample(); - BoatExample boatExample = new BoatExample("example", contentType, new Example().value(example), isJson(contentType)); - examples.add(boatExample); - } + ref = StringUtils.substringAfterLast(ref, "/"); + + boolean hasValidRef = openAPI.getComponents().getSchemas() != null && openAPI.getComponents().getSchemas().get(ref) != null; + + if (!hasValidRef) return; + + Schema schema = openAPI.getComponents().getSchemas().get(ref); + + if (schema.getExample() != null) { + Object example = schema.getExample(); + BoatExample boatExample = new BoatExample("example", contentType, new Example().value(example), isJson(contentType)); + examples.add(boatExample); } }