itizawa 4 лет назад
Родитель
Сommit
5bcdb0d7e7

+ 9 - 5
packages/slackbot-proxy/src/middlewares/slack-to-growi/extract-growi-uri-from-req.ts

@@ -2,17 +2,21 @@ import {
   IMiddleware, Middleware, Next, Req, Res,
 } from '@tsed/common';
 import { SlackOauthReq } from '~/interfaces/slack-to-growi/slack-oauth-req';
+import { DelegatorType, factory as GrowiUriInjectorFactory } from '~/services/growi-uri-injector';
 
 @Middleware()
 export class ExtractGrowiUriFromReq implements IMiddleware {
 
   use(@Req() req: Req & SlackOauthReq, @Res() res: Res, @Next() next: Next): void {
-    console.log('hoge');
-    const payload = JSON.parse(req.body.payload);
 
-    // For Modal, Send request to only one GROWI
-    if (payload.view != null) {
-      req.growiUri = JSON.parse(payload.view.private_metadata).growiUri;
+    // break when uri is found
+    for (const tyoe of Object.values(DelegatorType)) {
+      const growiUriInjector = GrowiUriInjectorFactory.getDelegator(tyoe);
+      const growiUri = growiUriInjector.extract(req.body);
+      if (growiUri != null) {
+        req.growiUri = growiUri;
+        break;
+      }
     }
 
     next();