@nodefony/monitoring-bundle
Version:
96 lines (86 loc) • 2.49 kB
JavaScript
import SwaggerUI from 'swagger-ui';
import {
SwaggerUIBundle,
SwaggerUIStandalonePreset
} from "swagger-ui-dist";
import "swagger-ui/dist/swagger-ui.css";
import "./swagger.css";
class Swagger {
constructor() {
this.config = window.swagger;
this.initialize();
this.changeLogo();
}
changeLogo() {
window.addEventListener("load", () => {
setTimeout(() => {
// Section 01 - Set url link
const logo = document.getElementsByClassName('link');
logo[0].href = "/";
logo[0].target = "_blank";
// Section 02 - Set logo
logo[0].children[0].alt = this.config.projectName;
logo[0].children[0].src = this.config.logo;
const newDiv = document.createElement("div");
const newContent = document.createTextNode('Nodefony Api');
newDiv.appendChild(newContent);
logo[0].append(newDiv)
});
});
}
initialize() {
//{"jwtAuth":{"name":"jwtAuth","schema":{"type":"apiKey","scheme":"bearer","in":"header","name":"jwt"},"value":"sdqfqsdfqsdf"}}
const authorized = localStorage.getItem('authorized');
const token = localStorage.getItem('token');
if (token) {
try {
let autorise = null
if (authorized) {
autorise = JSON.parse(authorized)
autorise.jwtAuth.value = token
} else {
autorise = {
jwtAuth:{
"name": "jwtAuth",
"schema": {
"type": "apiKey",
"scheme": "bearer",
"in": "header",
"name": "jwt"
},
"value":`${token}`
}
}
}
localStorage.setItem('authorized', JSON.stringify(autorise));
} catch (e) {
console.log('no token', e)
}
}
this.swagger = SwaggerUI({
//url: "/api/users/documentation",
urls: this.config.urls,
"urls.primaryName": this.config.primaryName,
dom_id: '#swagger',
validatorUrl: "none",
defaultModelsExpandDepth: -1,
deepLinking: true,
withCredentials:true,
presets: [
SwaggerUI.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
//SwaggerUIBundle.plugins.DownloadUrl
],
persistAuthorization: true,
layout: "StandaloneLayout",
requestInterceptor: function(request) {
//console.log('[Swagger] intercept try-it-out request');
//request.headers.jwt = localstorage;
return request;
}
});
}
}
export default new Swagger();