$scope.downloadSchema = function()

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()
                });
            };