diff --git a/src/config/env.config.ts b/src/config/env.config.ts index 45b8a5e1..511f4ebc 100644 --- a/src/config/env.config.ts +++ b/src/config/env.config.ts @@ -3,7 +3,13 @@ import { readFileSync } from 'fs'; import { load } from 'js-yaml'; import { join } from 'path'; -export type HttpServer = { TYPE: 'http' | 'https'; PORT: number; URL: string }; +export type HttpServer = { + TYPE: 'http' | 'https'; + PORT: number; + URL: string; + DISABLE_DOCS: boolean; + DISABLE_MANAGER: boolean; +}; export type HttpMethods = 'POST' | 'GET' | 'PUT' | 'DELETE'; export type Cors = { @@ -186,6 +192,8 @@ export class ConfigService { TYPE: (process.env.SERVER_TYPE as 'http' | 'https') || 'http', PORT: Number.parseInt(process.env.SERVER_PORT) || 8080, URL: process.env.SERVER_URL, + DISABLE_DOCS: process.env?.SERVER_DISABLE_DOCS === 'true', + DISABLE_MANAGER: process.env?.SERVER_DISABLE_MANAGER === 'true', }, CORS: { ORIGIN: process.env.CORS_ORIGIN.split(',') || ['*'], diff --git a/src/dev-env.yml b/src/dev-env.yml index 01a5927f..80c7e376 100644 --- a/src/dev-env.yml +++ b/src/dev-env.yml @@ -9,6 +9,9 @@ SERVER: TYPE: http # https PORT: 8080 # 443 URL: localhost + DISABLE_MANAGER: false + DISABLE_DOCS: false + CORS: ORIGIN: diff --git a/src/main.ts b/src/main.ts index 52bdd798..554d95e8 100644 --- a/src/main.ts +++ b/src/main.ts @@ -53,7 +53,8 @@ function bootstrap() { app.use('/store', express.static(join(ROOT_DIR, 'store'))); app.use('/', router); - app.use(swaggerRouter); + + if (!configService.get('SERVER').DISABLE_DOCS) app.use(swaggerRouter); app.use( (err: Error, req: Request, res: Response, next: NextFunction) => { diff --git a/src/whatsapp/routers/index.router.ts b/src/whatsapp/routers/index.router.ts index 781b528c..56b9301f 100644 --- a/src/whatsapp/routers/index.router.ts +++ b/src/whatsapp/routers/index.router.ts @@ -31,23 +31,25 @@ enum HttpStatus { const router = Router(); const authType = configService.get('AUTHENTICATION').TYPE; +const serverConfig = configService.get('SERVER'); const guards = [instanceExistsGuard, instanceLoggedGuard, authGuard[authType]]; const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8')); +if (!serverConfig.DISABLE_MANAGER) router.use('/manager', new ViewsRouter().router); + router .get('/', (req, res) => { res.status(HttpStatus.OK).json({ status: HttpStatus.OK, message: 'Welcome to the Evolution API, it is working!', version: packageJson.version, - swagger: `${req.protocol}://${req.get('host')}/docs`, + swagger: !serverConfig.DISABLE_DOCS ? `${req.protocol}://${req.get('host')}/docs` : undefined, + manager: !serverConfig.DISABLE_MANAGER ? `${req.protocol}://${req.get('host')}/manager` : undefined, documentation: `https://doc.evolution-api.com`, - manager: `${req.protocol}://${req.get('host')}/manager`, }); }) .use('/instance', new InstanceRouter(configService, ...guards).router) - .use('/manager', new ViewsRouter().router) .use('/message', new MessageRouter(...guards).router) .use('/chat', new ChatRouter(...guards).router) .use('/group', new GroupRouter(...guards).router)