zahmis hace 4 años
padre
commit
f773bbe9c8

+ 14 - 8
packages/slackbot-proxy/src/controllers/slack.ts

@@ -171,11 +171,15 @@ export class SlackCtrl {
     const baseDate = new Date();
 
     const relationsForSingleUse:RelationMock[] = [];
+    // console.log(body);
+
     await Promise.all(relations.map(async(relation) => {
-      const isSupported = await this.relationsService.isSupportedGrowiCommandForSingleUse(relation, growiCommand.growiCommandType, baseDate);
-      // if (isSupported) {
-      //   return relationsForSingleUse.push(relation);
-      // }
+      const isSupported = await this.relationsService.isSupportedGrowiCommandForSingleUse(relation, growiCommand.growiCommandType, body.channel_name, baseDate);
+      console.log(isSupported);
+
+      if (isSupported) {
+        return relationsForSingleUse.push(relation);
+      }
     }));
 
     let isCommandPermitted = false;
@@ -188,10 +192,12 @@ export class SlackCtrl {
 
     const relationsForBroadcastUse:RelationMock[] = [];
     await Promise.all(relations.map(async(relation) => {
-      const isSupported = await this.relationsService.isSupportedGrowiCommandForBroadcastUse(relation, growiCommand.growiCommandType, baseDate);
-      // if (isSupported) {
-      //   relationsForBroadcastUse.push(relation);
-      // }
+      const isSupported = await this.relationsService.isSupportedGrowiCommandForBroadcastUse(
+        relation, growiCommand.growiCommandType, body.channel_name, baseDate,
+      );
+      if (isSupported) {
+        relationsForBroadcastUse.push(relation);
+      }
     }));
 
     /*

+ 27 - 9
packages/slackbot-proxy/src/services/RelationsService.ts

@@ -65,24 +65,42 @@ export class RelationsService {
     return relation;
   }
 
-  async isSupportedGrowiCommandForSingleUse(relation:RelationMock, growiCommandType:string, baseDate:Date):Promise<void> {
+  async isSupportedGrowiCommandForSingleUse(relation:RelationMock, growiCommandType:string, channelName:string, baseDate:Date):Promise<boolean> {
     const syncedRelation = await this.syncRelation(relation, baseDate);
+
     if (syncedRelation == null) {
-      // return false;
+      return false;
+    }
+
+    const boolOrArrayString = relation.supportedCommandsForSingleUse[growiCommandType];
+
+    if (boolOrArrayString == null) {
+      return false;
+    }
+
+    if (Array.isArray(boolOrArrayString)) {
+      return boolOrArrayString.includes(channelName);
     }
-    console.log(growiCommandType);
-    console.log(relation.supportedCommandsForSingleUse[growiCommandType], 73);
-    // return relation.supportedCommandsForSingleUse.includes(growiCommandType);
+
+    return boolOrArrayString;
   }
 
-  async isSupportedGrowiCommandForBroadcastUse(relation:RelationMock, growiCommandType:string, baseDate:Date):Promise<void> {
+  async isSupportedGrowiCommandForBroadcastUse(relation:RelationMock, growiCommandType:string, channelName:string, baseDate:Date):Promise<boolean> {
     const syncedRelation = await this.syncRelation(relation, baseDate);
     if (syncedRelation == null) {
-      // return false;
+      return false;
+    }
+    const boolOrArrayString = relation.supportedCommandsForBroadcastUse[growiCommandType];
+
+    if (boolOrArrayString == null) {
+      return false;
+    }
+
+    if (Array.isArray(boolOrArrayString)) {
+      return boolOrArrayString.includes(channelName);
     }
-    console.log(relation.supportedCommandsForSingleUse);
 
-    // return relation.supportedCommandsForBroadcastUse.includes(growiCommandType);
+    return boolOrArrayString;
   }
 
 }