Skip to content

Commit 8f85de4

Browse files
committed
Add all of support for added properties
1 parent f05080d commit 8f85de4

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

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

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.qdesrame.openapi.diff.output;
22

33
import com.qdesrame.openapi.diff.model.*;
4+
import com.qdesrame.openapi.diff.utils.RefPointer;
5+
import com.qdesrame.openapi.diff.utils.RefType;
46
import io.swagger.v3.oas.models.headers.Header;
57
import io.swagger.v3.oas.models.media.ArraySchema;
8+
import io.swagger.v3.oas.models.media.ComposedSchema;
69
import io.swagger.v3.oas.models.media.MediaType;
710
import io.swagger.v3.oas.models.media.Schema;
811
import io.swagger.v3.oas.models.parameters.Parameter;
@@ -18,6 +21,7 @@
1821
import static java.lang.String.format;
1922

2023
public class MarkdownRender implements Render {
24+
2125
public static final Logger LOGGER = LoggerFactory.getLogger(MarkdownRender.class);
2226

2327
private final String H3 = "### ";
@@ -31,10 +35,14 @@ public class MarkdownRender implements Render {
3135
private final String LI = "* ";
3236
private final String HR = "---\n";
3337

38+
private static RefPointer<Schema> refPointer = new RefPointer<>(RefType.SCHEMAS);
39+
private ChangedOpenApi diff;
40+
3441
public MarkdownRender() {
3542
}
3643

3744
public String render(ChangedOpenApi diff) {
45+
this.diff = diff;
3846
StringBuilder sb = new StringBuilder();
3947
sb.append(listEndpoints("What's New", diff.getNewEndpoints()))
4048
.append(listEndpoints("What's Deleted", diff.getMissingEndpoints()))
@@ -209,18 +217,37 @@ private String schema(ChangedSchema schema) {
209217

210218
private String schema(int deepness, ChangedSchema schema) {
211219
StringBuilder sb = new StringBuilder("");
220+
if (schema.isDiscriminatorPropertyChanged()) {
221+
LOGGER.debug("Discriminator property changed");
222+
}
223+
if (schema.getChangedOneOfSchema() != null) {
224+
LOGGER.debug("One of schema changed");
225+
}
212226
sb.append(listDiff(deepness, "enum", schema.getChangeEnum()));
213227
sb.append(properties(deepness, "Added property", schema.getIncreasedProperties(), true));
214228
sb.append(properties(deepness, "Deleted property", schema.getMissingProperties(), false));
215229
schema.getChangedProperties().forEach((name, property) -> sb.append(property(deepness, name, property)));
216230
return sb.toString();
217231
}
218232

233+
private String schema(int deepness, ComposedSchema schema) {
234+
StringBuilder sb = new StringBuilder("");
235+
if (schema.getAllOf() != null && schema.getAllOf() != null) {
236+
LOGGER.debug("All of schema");
237+
schema.getAllOf().stream()
238+
.map(schema1 -> refPointer.resolveRef(diff.getNewSpecOpenApi().getComponents(), schema1, schema1.get$ref()))
239+
.forEach(composedChild -> sb.append(schema(deepness, composedChild)));
240+
}
241+
return sb.toString();
242+
}
219243

220244
private String schema(int deepness, Schema schema) {
221245
StringBuilder sb = new StringBuilder("");
222246
sb.append(listItem(deepness, "Enum", schema.getEnum()));
223247
sb.append(properties(deepness, "Property", schema.getProperties(), true));
248+
if (schema instanceof ComposedSchema) {
249+
sb.append(schema(deepness, (ComposedSchema) schema));
250+
}
224251
return sb.toString();
225252
}
226253

0 commit comments

Comments
 (0)