From a7bf9c824f2dbf494162d10e62e95dd82979b140 Mon Sep 17 00:00:00 2001 From: selentia Date: Thu, 27 Nov 2025 10:22:26 +0900 Subject: [PATCH] =?UTF-8?q?feat(docs):=20Swagger=20=EB=AC=B8=EC=84=9C=20SU?= =?UTF-8?q?PER=5FADMIN=20=EC=A0=84=EC=9A=A9=20=EC=A0=91=EA=B7=BC=20?= =?UTF-8?q?=EB=B3=B4=ED=98=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/app.ts | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/core/app.ts b/src/core/app.ts index 4fcde5c..c008f55 100644 --- a/src/core/app.ts +++ b/src/core/app.ts @@ -48,6 +48,9 @@ import httpLogger from '#core/httpLogger'; import { errorHandler } from '#middlewares/errorHandler'; import ApiError from '#errors/ApiError'; +import authMiddleware from '#core/middlewares/authMiddleware'; +import requireRole from '#core/middlewares/requireRole'; + const app: Application = express(); /** @@ -176,14 +179,27 @@ app.use(API_PREFIX, routes); /** * Swagger */ -app.use( - `${API_PREFIX}/docs`, - swaggerUi.serve, - swaggerUi.setup(swaggerDoc, { - explorer: true, - customSiteTitle: 'WeLive API Docs', - }) -); +if (env.NODE_ENV === 'production') { + app.use( + `${API_PREFIX}/docs`, + authMiddleware, + requireRole(['SUPER_ADMIN']), + swaggerUi.serve, + swaggerUi.setup(swaggerDoc, { + explorer: true, + customSiteTitle: 'WeLive API Docs', + }) + ); +} else { + app.use( + `${API_PREFIX}/docs`, + swaggerUi.serve, + swaggerUi.setup(swaggerDoc, { + explorer: true, + customSiteTitle: 'WeLive API Docs', + }) + ); +} /** * 404 핸들러