This repository has been archived by the owner on Oct 20, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 76
/
swagger1-to-swagger2-converter.min.js
7 lines (7 loc) · 2.78 KB
/
swagger1-to-swagger2-converter.min.js
1
2
3
4
5
6
7
/*
* Orange angular-swagger-ui - v0.3.0
*
* (C) 2015 Orange, all right reserved
* MIT Licensed
*/
"use strict";angular.module("swaggerUi").service("swagger1ToSwagger2Converter",["$q","$http","swaggerModules",function(a,b,c){function d(d){var e=a.defer(),f={method:"GET",url:d};return c.execute(c.BEFORE_LOAD,f).then(function(){b(f).success(e.resolve).error(e.reject)})["catch"](e.reject),e.promise}function e(b,c,e){var h=e,i=h.info,k=[];i.contact={email:i.contact},i.license={name:i.license,url:i.licenseUrl},i.termsOfService=i.termsOfServiceUrl,h.paths={},h.definitions={},h.tags=[],angular.forEach(h.apis,function(a){k.push(d(c+a.path))}),a.all(k).then(function(a){angular.forEach(a,function(a){f(a,h),g(a,h),j(a,h)}),h.swagger="2.0",b.resolve(!0)})["catch"](b.reject)}function f(a,b){if(b.info.version=b.info.version||a.apiVersion,b.basePath=b.basePath||a.basePath,0===b.basePath.indexOf("http")){var c=angular.element('<a href="'+b.basePath+'"></a>')[0];b.schemes=[c.protocol.replace(":","")],b.host=c.host,b.basePath=c.pathname}b.tags.push({name:a.resourcePath})}function g(a,b){var c,d;angular.forEach(a.apis,function(e){c=b.paths[e.path]=b.paths[e.path]||{},angular.forEach(e.operations,function(b){d={},c[b.method.toLowerCase()]={deprecated:b.deprecated,description:b.notes,summary:b.summary,operationId:b.nickname,produces:b.produces||a.produces,consumes:b.consumes||a.consumes,parameters:b.parameters,responses:d,tags:[a.resourcePath]},h(a,b),i(a,b,d)})})}function h(a,b){angular.forEach(b.parameters,function(b){b["in"]=b.paramType;var c=b.type||b.$ref;a.models&&c&&a.models[c]&&(b.schema={$ref:"#/definitions/"+c},delete b.type)})}function i(a,b,c){var d;angular.forEach(b.responseMessages,function(e){if(d=c[e.code]={description:e.message},e.responseModel)a.models&&a.models[e.responseModel]?d.schema={$ref:"#/definitions/"+e.responseModel}:d.type=e.responseModel;else if(200===e.code&&"void"!==b.type&&(d.schema={type:b.type},"array"===b.type)){var f=b.items.type||b.items.$ref,g=d.schema.items={};a.models&&a.models[f]?g.$ref="#/definitions/"+f:g.type=f}})}function j(a,b){var c;angular.forEach(a.models,function(d,e){b.definitions[e]=d,d.subTypes&&(angular.forEach(d.subTypes,function(b){c=a.models&&a.models[b],c&&(d.required=(d.required||[]).concat(c.required||[]),angular.forEach(c.properties,function(a,b){d.properties[b]=a}))}),delete d.subTypes),angular.forEach(d.properties,function(b){var c=b.type||b.$ref;a.models&&c&&a.models[c]&&(b.$ref="#/definitions/"+c,delete b.type),b.items&&(c=b.items.type||b.items.$ref,a.models&&c&&a.models[c]&&(b.items.$ref="#/definitions/"+c),delete b.items.type)})})}this.execute=function(b,c){var d=a.defer(),f=c.swaggerVersion;return f&&0===f.indexOf("1.")?e(d,b,c):d.resolve(!1),d.promise}}]).run(["swaggerModules","swagger1ToSwagger2Converter",function(a,b){a.add(a.BEFORE_PARSE,b)}]);