Skip to content

Commit 3c7657b

Browse files
committed
Update markdown renderer
1 parent c034cfc commit 3c7657b

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,13 +216,28 @@ private String schema(ChangedSchema schema) {
216216
return schema(1, schema);
217217
}
218218

219+
private String oneOfSchema(int deepness, ChangedOneOfSchema schema, String discriminator) {
220+
StringBuilder sb = new StringBuilder("");
221+
sb.append(format("%sSwitch `%s`:\n", indent(deepness), discriminator));
222+
schema.getMissingMapping().keySet()
223+
.forEach(key -> sb.append(format("%s- Removed '%s'\n", indent(deepness), key)));
224+
schema.getIncreasedMapping().forEach((key, sub) ->
225+
sb.append(format("%s- Added '%s':\n", indent(deepness), key)).append(schema(deepness + 1, sub)));
226+
schema.getChangedMapping().forEach((key, sub) ->
227+
sb.append(format("%s- Updated `%s`:\n", indent(deepness), key))
228+
.append(schema(deepness + 1, sub)));
229+
return sb.toString();
230+
}
231+
219232
private String schema(int deepness, ChangedSchema schema) {
220233
StringBuilder sb = new StringBuilder("");
221234
if (schema.isDiscriminatorPropertyChanged()) {
222235
LOGGER.debug("Discriminator property changed");
223236
}
224237
if (schema.getChangedOneOfSchema() != null) {
225-
LOGGER.debug("One of schema changed");
238+
String discriminator = schema.getNewSchema().getDiscriminator() != null ?
239+
schema.getNewSchema().getDiscriminator().getPropertyName() : "";
240+
sb.append(oneOfSchema(deepness, schema.getChangedOneOfSchema(), discriminator));
226241
}
227242
sb.append(listDiff(deepness, "enum", schema.getChangeEnum()));
228243
sb.append(properties(deepness, "Added property", schema.getIncreasedProperties(), true));

0 commit comments

Comments
 (0)