in frontend/app/scripts/modules/serviceCenter/controllers/schemaCtrl.js [134:183]
$scope.downloadSchema = function(selectedSchema) {
$(".loader").show();
var schemaApi = apiConstant.api.schema.url;
var api = schemaApi.replace("{{serviceId}}", serviceId);
var url = api.replace("{{schemaId}}", selectedSchema);
var method = apiConstant.api.schema.method;
var headers = {
"X-ConsumerId": serviceId
};
httpService.apiRequest(url, method, null, headers, "nopopup").then(function(response) {
if (response && response.data && response.data.schema) {
$scope.template = response.data.schema;
$scope.template = $scope.template.replace(/\\\s/g, "");
$scope.json = YAML.parse($scope.template);
const ui = SwaggerUIBundle({
spec: $scope.json,
dom_id: '#swagger-template',
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout",
docExpansion: 'full'
});
var interval = $interval(function() {
if (angular.element('.swagger-ui').length) {
$(".loader").hide();
var content = $document[0].getElementById('singleTemplate').innerHTML;
var blob = new Blob([content], {
type: "text/html;charset=utf-8"
});
var link = angular.element('<a></a>');
link.attr('href', window.URL.createObjectURL(blob));
link.attr('download', selectedSchema + ".html");
link[0].click();
$interval.cancel(interval);
var clearDom = angular.element(document.querySelector('#swagger-template'));
clearDom.empty();
}
}, 500)
}
}, function(error) {
$(".loader").hide();
$scope.noSchemaFound()
});
};