Shun Miyazawa 3 лет назад
Родитель
Сommit
e168e642fe
1 измененных файлов с 19 добавлено и 8 удалено
  1. 19 8
      packages/app/src/server/middlewares/unavailable-when-maintenance-mode.ts

+ 19 - 8
packages/app/src/server/middlewares/unavailable-when-maintenance-mode.ts

@@ -4,16 +4,27 @@ import loggerFactory from '~/utils/logger';
 
 
 const logger = loggerFactory('growi:middlewares:unavailable-when-maintenance-mode');
 const logger = loggerFactory('growi:middlewares:unavailable-when-maintenance-mode');
 
 
-// export const generateUnavailableWhenMaintenanceModeMiddleware = crowi => async(req: Request, res: Response, next: NextFunction): Promise<void> => {
-//   const isMaintenanceMode = crowi.appService.isMaintenanceMode();
+type Crowi = {
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
+  nextApp: any,
+}
 
 
-//   if (!isMaintenanceMode) {
-//     next();
-//     return;
-//   }
+type CrowiReq = Request & {
+  crowi: Crowi,
+}
 
 
-//   res.render('maintenance-mode');
-// };
+export const generateUnavailableWhenMaintenanceModeMiddleware = crowi => async(req: CrowiReq, res: Response, next: NextFunction): Promise<void> => {
+  const isMaintenanceMode = crowi.appService.isMaintenanceMode();
+
+  if (!isMaintenanceMode) {
+    next();
+    return;
+  }
+
+  const { nextApp } = crowi;
+  req.crowi = crowi;
+  nextApp.render(req, res, '/maintenance');
+};
 
 
 export const generateUnavailableWhenMaintenanceModeMiddlewareForApi = crowi => async(req: Request, res: Response, next: NextFunction): Promise<void> => {
 export const generateUnavailableWhenMaintenanceModeMiddlewareForApi = crowi => async(req: Request, res: Response, next: NextFunction): Promise<void> => {
   const isMaintenanceMode = crowi.appService.isMaintenanceMode();
   const isMaintenanceMode = crowi.appService.isMaintenanceMode();