فهرست منبع

feat: convert salck ID to growi user

https://youtrack.weseek.co.jp/issue/GW-7697
- Remove unused method
- Add method to convert slack ID to growi user ID
mudana 4 سال پیش
والد
کامیت
bfd2928e10
1فایلهای تغییر یافته به همراه12 افزوده شده و 9 حذف شده
  1. 12 9
      packages/app/src/server/service/slack-command-handler/keep.js

+ 12 - 9
packages/app/src/server/service/slack-command-handler/keep.js

@@ -90,11 +90,6 @@ module.exports = (crowi) => {
     });
     });
   }
   }
 
 
-  function findUserBySlackId(slackId) {
-    const userData = User.findUserBySlackId(slackId);
-    return userData ? userData.username : slackId;
-  }
-
   handler.keepGetMessages = async function(client, channelId, newest, oldest) {
   handler.keepGetMessages = async function(client, channelId, newest, oldest) {
     let result;
     let result;
 
 
@@ -143,10 +138,20 @@ module.exports = (crowi) => {
     return result;
     return result;
   };
   };
 
 
+  handler.messagesWithGrowiUser = async function(messages) {
+    await Promise.all(messages.map(async(message) => {
+      const growiUser = await User.findUserBySlackId(message.user);
+      if (growiUser) {
+        message.user = `${growiUser.name} (@${growiUser.username})`;
+      }
+    }));
+  };
+
   handler.keepCleanMessages = async function(messages) {
   handler.keepCleanMessages = async function(messages) {
     const cleanedContents = [];
     const cleanedContents = [];
     let lastMessage = {};
     let lastMessage = {};
     const grwTzoffset = crowi.appService.getTzoffset() * 60;
     const grwTzoffset = crowi.appService.getTzoffset() * 60;
+    await this.messagesWithGrowiUser(messages);
     messages
     messages
       .sort((a, b) => {
       .sort((a, b) => {
         return a.ts - b.ts;
         return a.ts - b.ts;
@@ -154,18 +159,16 @@ module.exports = (crowi) => {
       .forEach((message) => {
       .forEach((message) => {
         // increment contentsBody while removing the same headers
         // increment contentsBody while removing the same headers
         // exclude header
         // exclude header
-
-        const messageUsername = findUserBySlackId(message.user);
         const lastMessageTs = Math.floor(lastMessage.ts / 60);
         const lastMessageTs = Math.floor(lastMessage.ts / 60);
         const messageTs = Math.floor(message.ts / 60);
         const messageTs = Math.floor(message.ts / 60);
-        if (lastMessage.user === messageUsername && lastMessageTs === messageTs) {
+        if (lastMessage.user === message.user && lastMessageTs === messageTs) {
           cleanedContents.push(`${message.text}\n`);
           cleanedContents.push(`${message.text}\n`);
         }
         }
         // include header
         // include header
         else {
         else {
           const ts = (parseInt(message.ts) - grwTzoffset) * 1000;
           const ts = (parseInt(message.ts) - grwTzoffset) * 1000;
           const time = format(new Date(ts), 'h:mm a');
           const time = format(new Date(ts), 'h:mm a');
-          cleanedContents.push(`${messageUsername}  ${time}\n${message.text}\n`);
+          cleanedContents.push(`${message.user}  ${time}\n${message.text}\n`);
           lastMessage = message;
           lastMessage = message;
         }
         }
       });
       });