Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17,873 changes: 8,953 additions & 8,920 deletions browser/swagger-client.js

Large diffs are not rendered by default.

325 changes: 160 additions & 165 deletions browser/swagger-client.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion lib/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ SwaggerClient.prototype.build = function (mock) {
self.oldSwaggerObject = self.swaggerObject;

converter.setDocumentationLocation(self.url);
converter.convert(responseObj, self.clientAuthorizations, function(spec) {
converter.convert(responseObj, self.clientAuthorizations, self.options, function(spec) {
self.swaggerObject = spec;
new Resolver().resolve(spec, self.url, self.buildFromSpec, self);
self.isValid = true;
Expand Down
13 changes: 11 additions & 2 deletions lib/resolver.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Resolver.prototype.processAllOf = function(name, definition, resolutionTable, un

Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
this.spec = spec;
var root = arg1, callback = arg2, scope = arg3, location, i;
var root = arg1, callback = arg2, scope = arg3, opts = {}, location, i;
if(typeof arg1 === 'function') {
root = null;
callback = arg1;
Expand All @@ -43,6 +43,14 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
this.scope = (scope || this);
this.iteration = this.iteration || 0;

if(this.scope.options && this.scope.options.requestInterceptor){
opts.requestInterceptor = this.scope.options.requestInterceptor;
}

if(this.scope.options && this.scope.options.responseInterceptor){
opts.responseInterceptor = this.scope.options.responseInterceptor;
}

var name, path, property, propertyName;
var processedCalls = 0, resolvedRefs = {}, unresolvedRefs = {};
var resolutionTable = []; // store objects for dereferencing
Expand Down Expand Up @@ -275,7 +283,8 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
if (scope && scope.clientAuthorizations) {
scope.clientAuthorizations.apply(obj);
}
new SwaggerHttp().execute(obj);

new SwaggerHttp().execute(obj, opts);
}
}(toResolve[ii], spec, this));
}
Expand Down
17 changes: 13 additions & 4 deletions lib/spec-converter.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ SwaggerSpecConverter.prototype.setDocumentationLocation = function (location) {
/**
* converts a resource listing OR api declaration
**/
SwaggerSpecConverter.prototype.convert = function (obj, clientAuthorizations, callback) {
SwaggerSpecConverter.prototype.convert = function (obj, clientAuthorizations, opts, callback) {
// not a valid spec
if(!obj || !Array.isArray(obj.apis)) {
return this.finish(callback, null);
Expand Down Expand Up @@ -55,7 +55,7 @@ SwaggerSpecConverter.prototype.convert = function (obj, clientAuthorizations, ca
this.finish(callback, swagger);
}
else {
this.resourceListing(obj, swagger, callback);
this.resourceListing(obj, swagger, opts, callback);
}
};

Expand Down Expand Up @@ -454,12 +454,21 @@ SwaggerSpecConverter.prototype.toJsonSchema = function(source) {
}
};

SwaggerSpecConverter.prototype.resourceListing = function(obj, swagger, callback) {
SwaggerSpecConverter.prototype.resourceListing = function(obj, swagger, opts, callback) {
var i;
var processedCount = 0; // jshint ignore:line
var self = this; // jshint ignore:line
var expectedCount = obj.apis.length;
var _swagger = swagger; // jshint ignore:line
var _opts = {};

if(opts && opts.requestInterceptor){
_opts.requestInterceptor = opts.requestInterceptor;
}

if(opts && opts.responseInterceptor){
_opts.responseInterceptor = opts.responseInterceptor;
}

if(expectedCount === 0) {
this.finish(callback, swagger);
Expand Down Expand Up @@ -507,7 +516,7 @@ SwaggerSpecConverter.prototype.resourceListing = function(obj, swagger, callback
this.clientAuthorizations.apply(http);
}

new SwaggerHttp().execute(http);
new SwaggerHttp().execute(http, _opts);
}
};

Expand Down
1 change: 1 addition & 0 deletions lib/types/operation.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ var Operation = module.exports = function (parent, scheme, operationId, httpMeth

if(parent && parent.options) {
this.client = parent.options.client || null;
this.requestInterceptor = parent.options.requestInterceptor || null;
this.responseInterceptor = parent.options.responseInterceptor || null;
}
this.authorizations = args.security;
Expand Down
12 changes: 6 additions & 6 deletions test/compat/converter.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ describe('converts specs', function () {

it('ignores an empty spec', function(done) {
var converter = new SwaggerSpecConverter();
converter.convert({}, {}, function(result) {
converter.convert({}, {}, {}, function(result) {
expect(result).toBe(null);
done();
});
Expand All @@ -42,7 +42,7 @@ describe('converts specs', function () {
obj.on.response = function(data) {
var converter = new SwaggerSpecConverter();
converter.setDocumentationLocation('http://localhost:8001/v1/api-docs');
converter.convert(data.obj, {}, function(swagger) {
converter.convert(data.obj, {}, {}, function(swagger) {
test.array(swagger.tags);
var petTag = swagger.tags[0];
var userTag = swagger.tags[1];
Expand Down Expand Up @@ -124,7 +124,7 @@ describe('converts specs', function () {
obj.on.response = function(data) {
var converter = new SwaggerSpecConverter();
converter.setDocumentationLocation('http://localhost:8001/v1/api-docs');
converter.convert(data.obj, {}, function(swagger) {
converter.convert(data.obj, {}, {}, function(swagger) {

// metadata tests
expect(swagger.swagger).toBe('2.0');
Expand Down Expand Up @@ -206,7 +206,7 @@ describe('converts specs', function () {
obj.on.response = function(data) {
var converter = new SwaggerSpecConverter();
converter.setDocumentationLocation('http://localhost:8001/v1/word.json');
converter.convert(data.obj, {}, function(swagger) {
converter.convert(data.obj, {}, {}, function(swagger) {
expect(Object.keys(swagger.paths).length).toBe(12);

var getDefinitions = swagger.paths['/word.{format}/{word}/definitions'].get;
Expand Down Expand Up @@ -260,7 +260,7 @@ describe('converts specs', function () {
obj.on.response = function(data) {
var converter = new SwaggerSpecConverter();
converter.setDocumentationLocation('http://localhost:8001/v1/api-docs');
converter.convert(data.obj, {}, function(swagger) {
converter.convert(data.obj, {}, {}, function(swagger) {
issuesSpec = swagger;
done();
});
Expand Down Expand Up @@ -320,7 +320,7 @@ describe('converts specs', function () {
expect(operation.successResponse[200].definition).toBeAn('object');
expect(operation.responses[400].schema).toBeAn('object');
expect(operation.responses[400].schema['$ref']).toBe('#/definitions/VeryBad');
expect(callCount).toEqual(1);
expect(callCount).toEqual(4);
done();
}).catch(function(e) {
console.log(e);
Expand Down