Shun Miyazawa 4 лет назад
Родитель
Сommit
198269778d
1 измененных файлов с 35 добавлено и 2 удалено
  1. 35 2
      src/server/routes/apiv3/users.js

+ 35 - 2
src/server/routes/apiv3/users.js

@@ -122,6 +122,10 @@ module.exports = (crowi) => {
     const { appService, mailService } = crowi;
     const appTitle = appService.getAppTitle();
 
+    const sendedEmailUserList = [];
+    const failedToSendEmailList = userList.map((user) => { return user.email });
+    const failedToSendEmailReason = '';
+
     const promise = userList.map(async(user) => {
       return mailService.send({
         to: user.email,
@@ -136,6 +140,36 @@ module.exports = (crowi) => {
       });
     });
 
+    await Promise.allSettled(promise)
+      .then((results) => {
+        results.forEach((result) => {
+          console.log(result);
+        });
+      });
+
+
+    // .then((results) => {
+    //   results.forEach((result) => {
+    //     console.log(result);
+    //     if (result.status === 'fulfilled') {
+    //       sendedEmailUserList.push(result.value);
+    //       // remove email sended user
+    //       const index = failedToSendEmailList.indexOf(result.value.email);
+    //       failedToSendEmailList.splice(index, 1);
+    //     }
+    //     else {
+    //       failedToSendEmailReason = result.reason;
+    //     }
+    //   });
+    // });
+
+    const faildToSendEmailUser = {
+      emailList: failedToSendEmailList,
+      msg: failedToSendEmailReason,
+    };
+
+    return { sendedEmailUserList, faildToSendEmailUser };
+
     // await Promise.allSettled(userList.map(async(user) => {
     //   if (user.password == null) {
     //     return;
@@ -158,7 +192,6 @@ module.exports = (crowi) => {
     //     return logger.debug('fail to send email: ', err);
     //   }
     // }));
-
   };
 
   /**
@@ -414,8 +447,8 @@ module.exports = (crowi) => {
     try {
       if (req.body.sendEmail) {
         await sendEmailbyUserList(afterWorkEmailList.createdUserList);
+        return res.apiv3({ afterWorkEmailList }, 201);
       }
-      return res.apiv3({ afterWorkEmailList }, 201);
     }
     catch (err) {
       const msg = 'Failed to send email';