Skip to content

Commit c37bff4

Browse files
committed
Add enum diff support in markdown export
1 parent 371361e commit c37bff4

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

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

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import java.util.List;
1616
import java.util.Map;
1717

18+
import static java.lang.String.format;
19+
1820
public class MarkdownRender implements Render {
1921
public static final Logger LOGGER = LoggerFactory.getLogger(MarkdownRender.class);
2022

@@ -119,7 +121,7 @@ private String itemResponse(String title, String code, String description) {
119121
if (!code.equals("default")) {
120122
status = HttpStatus.getStatusText(Integer.parseInt(code));
121123
}
122-
sb.append(String.format("%s : **%s %s**\n", title, code, status));
124+
sb.append(format("%s : **%s %s**\n", title, code, status));
123125
sb.append(description(description));
124126
return sb.toString();
125127
}
@@ -153,7 +155,7 @@ private String itemHeader(String code, ChangedHeader header) {
153155

154156
private String itemHeader(String title, String mediaType, String description) {
155157
StringBuilder sb = new StringBuilder("");
156-
sb.append(String.format("%s : `%s`\n\n", title, mediaType));
158+
sb.append(format("%s : `%s`\n\n", title, mediaType));
157159
sb.append(description(description)).append('\n');
158160
return sb.toString();
159161
}
@@ -184,7 +186,7 @@ private String listContent(String prefix, String title, Map<String, MediaType> m
184186

185187
private String itemContent(String title, String mediaType) {
186188
StringBuilder sb = new StringBuilder("");
187-
sb.append(String.format("%s : `%s`\n\n", title, mediaType));
189+
sb.append(format("%s : `%s`\n\n", title, mediaType));
188190
return sb.toString();
189191
}
190192

@@ -207,6 +209,7 @@ private String schema(ChangedSchema schema) {
207209

208210
private String schema(int deepness, ChangedSchema schema) {
209211
StringBuilder sb = new StringBuilder("");
212+
sb.append(listDiff(deepness, "enum", schema.getChangeEnum()));
210213
sb.append(properties(deepness, "Added property", schema.getIncreasedProperties()));
211214
sb.append(properties(deepness, "Deleted property", schema.getMissingProperties()));
212215
schema.getChangedProperties().forEach((name, property) -> sb.append(property(deepness, name, property)));
@@ -235,7 +238,24 @@ private String property(int deepness, String title, String name, Schema schema)
235238
}
236239

237240
private String property(int deepness, String title, String name, String type, String description) {
238-
return String.format("%s* %s `%s` (%s)\n%s\n", indent(deepness), title, name, type, description(indent(deepness + 1), description));
241+
return format("%s* %s `%s` (%s)\n%s\n", indent(deepness), title, name, type, description(indent(deepness + 1), description));
242+
}
243+
244+
private String listDiff(int deepness, String name, ListDiff listDiff) {
245+
if (listDiff == null) {
246+
return "";
247+
}
248+
return listItem(deepness, "Added " + name, listDiff.getIncreased()) +
249+
listItem(deepness, "Removed " + name, listDiff.getMissing());
250+
}
251+
252+
private <T> String listItem(int deepness, String name, List<T> list) {
253+
StringBuilder sb = new StringBuilder("");
254+
if (list != null && list.size() > 0) {
255+
sb.append(format("%s%s value%s:\n\n", indent(deepness), name, list.size() > 1 ? "s" : ""));
256+
list.forEach(p -> sb.append(format("%s* `%s`\n", indent(deepness), p)));
257+
}
258+
return sb.toString();
239259
}
240260

241261
private String parameters(ChangedParameters changedParameters) {
@@ -258,7 +278,7 @@ private String itemParameter(String title, Parameter parameter) {
258278
}
259279

260280
private String itemParameter(String title, String name, String in, String description) {
261-
return String.format("%s: ", title) + code(name) + " in " + code(in) + '\n' + description(description) + '\n';
281+
return format("%s: ", title) + code(name) + " in " + code(in) + '\n' + description(description) + '\n';
262282
}
263283

264284
private String itemParameter(ChangedParameter param) {

0 commit comments

Comments
 (0)