From 4b942f84378d72d7f253f3f3f3039ed671c081fc Mon Sep 17 00:00:00 2001 From: hichri-louay Date: Thu, 25 May 2023 11:14:31 +0100 Subject: [PATCH] refactoring swagger config --- app.js | 47 ++++---------------------------------- conf/swaggerSetup.js | 54 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 42 deletions(-) create mode 100644 conf/swaggerSetup.js diff --git a/app.js b/app.js index bd68b05d1..6cf5533f8 100644 --- a/app.js +++ b/app.js @@ -11,6 +11,7 @@ require('dotenv').config() let logger = require('morgan') let cookieParser = require('cookie-parser') let path = require('path') +const {swaggerUi, swaggerSpec, cssOptions} = require('./conf/swaggerSetup'); // set up rate limiter: maximum of five requests per minute var RateLimit = require('express-rate-limit') const package = require('./package.json') @@ -111,6 +112,7 @@ app.use('/auth', loginroutes) app.use('/wallet', walletroutes) app.use('/profile', profileroutes) app.use('/campaign', campaignroutes) +app.use('/docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec, cssOptions)); let host if (process.env.NODE_ENV == 'testnet') { host = process.env.BASEURL @@ -120,49 +122,10 @@ if (process.env.NODE_ENV == 'testnet') { host = process.env.BASEURL_MAINNET } -const swaggerJSDoc = require('swagger-jsdoc') -const swaggerUi = require('swagger-ui-express') -const swaggerDefinition = { - openapi: '3.0.0', - info: { - title: 'API for node-satt', - version: package.version, - description: - 'Welcome to SaTT Webservice endpoint, this backend provides webservice to SaTT WebWallet and advertising campaign manager', - customCss: '.swagger-ui .topbar { display: none }', - }, - host: host, - components: { - securitySchemes: { - bearerAuth: { - type: 'http', - scheme: 'bearer', - bearerFormat: 'JWT', - }, - }, - }, - security: [ - { - bearerAuth: [], - }, - ], -} -var cssOptions = { - customCss: ` - .topbar-wrapper img {content:url(/assets/SaTT.png); width:50px; height:auto;}`, - customSiteTitle: 'SaTT', - customfavIcon: '/assets/SaTT-noire.png', -} -const options = { - swaggerDefinition, - apis: ['./routes/*.js'], -} -const swaggerSpec = swaggerJSDoc(options) -// if (process.env.NODE_ENV !== 'mainnet') { -// app.use('/docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec, cssOptions)) -// } -app.use('/docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec, cssOptions)) + + + // catch 204 and forward to error handler app.use(function (req, res, next) { diff --git a/conf/swaggerSetup.js b/conf/swaggerSetup.js new file mode 100644 index 000000000..1443ffa2f --- /dev/null +++ b/conf/swaggerSetup.js @@ -0,0 +1,54 @@ +const swaggerUi = require('swagger-ui-express') +const swaggerJSDoc = require('swagger-jsdoc') +const package = require('./../package.json') +require('dotenv').config() +let host +if (process.env.NODE_ENV == 'testnet') { + host = process.env.BASEURL +} else if (process.env.NODE_ENV == 'local') { + host = process.env.BASEURLLOCAL +} else { + host = process.env.BASEURL_MAINNET +} +const swaggerDefinition = { + openapi: '3.0.0', + info: { + title: 'API for node-satt', + version: package.version, + description: + 'Welcome to SaTT Webservice endpoint, this backend provides webservice to SaTT WebWallet and advertising campaign manager', + customCss: '.swagger-ui .topbar { display: none }', + }, + host: host, + components: { + securitySchemes: { + bearerAuth: { + type: 'http', + scheme: 'bearer', + bearerFormat: 'JWT', + }, + }, + }, + security: [ + { + bearerAuth: [], + }, + ], +} + +const cssOptions = { + customCss: ` + .topbar-wrapper img {content:url(/assets/SaTT.png); width:50px; height:auto;}`, + customSiteTitle: 'SaTT', + customfavIcon: '/assets/SaTT-noire.png', +} + +const options = { + swaggerDefinition, + apis: ['./routes/*.js'], +} +const swaggerSpec = swaggerJSDoc(options) + + + +module.exports = {swaggerUi, swaggerSpec, cssOptions}; \ No newline at end of file