Skip to content

Commit e8d4953

Browse files
committed
Merge pull request #686 from swagger-api/issue-681
added fix for #681
2 parents 141396f + 94c488a commit e8d4953

File tree

4 files changed

+108
-6
lines changed

4 files changed

+108
-6
lines changed

browser/swagger-client.js

Lines changed: 24 additions & 2 deletions
Large diffs are not rendered by default.

browser/swagger-client.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/resolver.js

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,29 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
143143
this.resolveInline(root, spec, response, resolutionTable, unresolvedRefs, location);
144144
}
145145
if (response.schema) {
146-
this.resolveTo(root, response.schema, resolutionTable, location);
146+
var responseObj = response;
147+
if(_.isArray(responseObj.schema.allOf)) {
148+
// move to a definition
149+
var modelName = 'inline_model';
150+
var name = modelName;
151+
var done = false; var counter = 0;
152+
while(!done) {
153+
if(typeof spec.definitions[name] === 'undefined') {
154+
done = true;
155+
break;
156+
}
157+
name = modelName + '_' + counter;
158+
counter ++;
159+
}
160+
spec.definitions[name] = { allOf: responseObj.schema.allOf };
161+
delete responseObj.schema.allOf;
162+
delete responseObj.schema.type;
163+
responseObj.schema.$ref = '#/definitions/' + name;
164+
this.processAllOf(root, name, spec.definitions[name], resolutionTable, unresolvedRefs, spec);
165+
}
166+
else {
167+
this.resolveTo(root, response.schema, resolutionTable, location);
168+
}
147169
}
148170
}
149171
}

0 commit comments

Comments
 (0)