Skip to content

Commit 635c6a2

Browse files
committed
Dry up examples
1 parent 4301303 commit 635c6a2

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

src/DefinitionGenerator.ts

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -209,12 +209,7 @@ export class DefinitionGenerator {
209209
},
210210
};
211211

212-
// Add examples if any can be found
213-
if (requestModel.examples && Array.isArray(requestModel.examples)) {
214-
merge(reqModelConfig, { examples: clone(requestModel.examples) });
215-
} else if (requestModel.example) {
216-
merge(reqModelConfig, { example: clone(requestModel.example) });
217-
}
212+
this.applyExamples(requestModel, reqModelConfig);
218213

219214
const reqBodyConfig: { content: object, description?: string } = {
220215
content: {
@@ -234,6 +229,14 @@ export class DefinitionGenerator {
234229
return requestBodies;
235230
}
236231

232+
private applyExamples (target, config) {
233+
if (target.examples && Array.isArray(target.examples)) {
234+
merge(config, { examples: clone(target.examples) });
235+
} else if (target.example) {
236+
merge(config, { example: clone(target.example) });
237+
}
238+
}
239+
237240
/**
238241
* Gets response bodies from documentation config
239242
* @param documentationConfig
@@ -274,21 +277,21 @@ export class DefinitionGenerator {
274277

275278
private getResponseContent (response) {
276279
const content = {};
280+
277281
for (const responseKey of Object.keys(response)) {
278-
const responseModel = this.config.models.filter(
279-
(model) => model.name === response[responseKey],
280-
).pop();
282+
const responseModel = this.config.models.find((model) =>
283+
model.name === response[responseKey],
284+
);
285+
281286
if (responseModel) {
282287
const resModelConfig = {
283288
schema: {
284289
$ref: `#/components/schemas/${response[responseKey]}`,
285290
},
286291
};
287-
if (responseModel.examples && Array.isArray(responseModel.examples)) {
288-
merge(resModelConfig, { examples: clone(responseModel.examples) });
289-
} else if (responseModel.example) {
290-
merge(resModelConfig, { example: clone(responseModel.example) });
291-
}
292+
293+
this.applyExamples(responseModel, resModelConfig);
294+
292295
merge(content, { [responseKey] : resModelConfig });
293296
}
294297
}

test/project/openapi.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ components:
164164
info:
165165
title: ''
166166
description: ''
167-
version: 6468e32d-3e32-4d98-9e62-ef0bc4e106ef
167+
version: 442d95b9-dcc5-4e6e-a354-a561b8904c08
168168
paths:
169169
/create:
170170
post:

0 commit comments

Comments
 (0)