forked from darosh/angular-swagger-ui-material
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsplit.js
40 lines (31 loc) · 1.1 KB
/
split.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
'use strict';
angular.module('sw.plugin.split', ['sw.plugins'])
.factory('split', function ($q) {
return {
execute: execute
};
function execute (url, swagger) {
var deferred = $q.defer();
if (swagger && swagger.swagger && !swagger.tags) {
var tags = {};
angular.forEach(swagger.paths, function (path, key) {
var t = key.replace(/^\/?([^\/]+).*$/g, '$1');
tags[t] = true;
angular.forEach(path, function (method) {
if (!method.tags || !method.tags.length) {
method.tags = [t];
}
});
});
swagger.tags = [];
Object.keys(tags).forEach(function (tag) {
swagger.tags.push({name: tag});
});
}
deferred.resolve(true);
return deferred.promise;
}
})
.run(function (plugins, split) {
plugins.add(plugins.BEFORE_PARSE, split);
});