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

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

@@ -10,9 +10,9 @@ export class ExtractGrowiUriFromReq implements IMiddleware {
   use(@Req() req: Req & SlackOauthReq, @Res() res: Res, @Next() next: Next): void {
 
     // break when uri is found
-    for (const tyoe of Object.values(DelegatorType)) {
-      const growiUriInjector = GrowiUriInjectorFactory.getDelegator(tyoe);
-      const growiUri = growiUriInjector.extract(req.body);
+    for (const type of Object.values(DelegatorType)) {
+      const growiUriInjector = GrowiUriInjectorFactory.getDelegator(type);
+      const { growiUri } = growiUriInjector.extract(req.body);
       if (growiUri != null) {
         req.growiUri = growiUri;
         break;

+ 13 - 4
packages/slackbot-proxy/src/services/growi-uri-injector/GrowiUriInjectionModalDelegator.ts

@@ -9,16 +9,25 @@ export class GrowiUriInjectionModalDelegator implements GrowiUriInjector {
       return;
     }
     const parsedView = JSON.parse(body.view as string);
-    parsedView.private_metadata = JSON.stringify({ growiUri });
+    // const originalPrivateMetadata = JSON.stringify(parsedView.private_metadata);
+    const originalData = JSON.stringify({ type: 'view_submission' });
+
+    parsedView.private_metadata = JSON.stringify({ growiUri, originalData });
     body.view = JSON.stringify(parsedView);
   }
 
-  extract(body: any): string|void {
+  extract(body: any): {growiUri?:string, originalData:{[key:string]:any}} {
     const payload = JSON.parse(body.payload);
+
     if (payload?.view?.private_metadata == null) {
-      return;
+      return { originalData: {} };
     }
-    return JSON.parse(payload.view.private_metadata).growiUri;
+    const parsedPrivateMetadata = JSON.parse(payload.view.private_metadata);
+    if (parsedPrivateMetadata.originalData != null) {
+      parsedPrivateMetadata.originalData = JSON.parse(parsedPrivateMetadata.originalData);
+    }
+    return parsedPrivateMetadata;
+
   }
 
 }

+ 1 - 1
packages/slackbot-proxy/src/services/growi-uri-injector/GrowiUriInjector.ts

@@ -3,5 +3,5 @@ export interface GrowiUriInjector {
 
   inject(body: any, growiUri:string): void;
 
-  extract(body: any): string|void;
+  extract(body: any):any;
 }