Преглед на файлове

update createUsersByEmailList

Shun Miyazawa преди 4 години
родител
ревизия
b502809390
променени са 1 файла, в които са добавени 33 реда и са изтрити 17 реда
  1. 33 17
      src/server/models/user.js

+ 33 - 17
src/server/models/user.js

@@ -572,25 +572,41 @@ module.exports = function(crowi) {
     const creationEmailList = emailList.filter((email) => { return existingEmailList.indexOf(email) === -1 });
     const creationEmailList = emailList.filter((email) => { return existingEmailList.indexOf(email) === -1 });
 
 
     const createdUserList = [];
     const createdUserList = [];
-    const failedToCreateUserEmailList = creationEmailList;
+    const failedToCreateUserEmailList = [];
 
 
-    const promises = creationEmailList.map((email) => {
-      return this.createUserByEmail(email);
-    });
+    await Promise.all(creationEmailList.map(async(email) => {
+      try {
+        const createdUser = await this.createUserByEmail(email);
+        createdUserList.push(createdUser);
+      }
+      catch (err) {
+        logger.error(err);
+        failedToCreateUserEmailList.push({
+          email,
+          reason: err,
+        });
+      }
+    }));
 
 
-    const results = await Promise.allSettled(promises);
-    results
-      .forEach((result) => {
-        if (result.status === 'fulfilled') {
-          createdUserList.push(result.value);
-          // remove created user
-          const index = failedToCreateUserEmailList.indexOf(result.value.email);
-          failedToCreateUserEmailList.splice(index, 1);
-        }
-        else {
-          logger.error(result.reason);
-        }
-      });
+    return { createdUserList, existingEmailList, failedToCreateUserEmailList };
+
+    // const promises = creationEmailList.map((email) => {
+    //   return this.createUserByEmail(email);
+    // });
+
+    // const results = await Promise.allSettled(promises);
+    // results
+    //   .forEach((result) => {
+    //     if (result.status === 'fulfilled') {
+    //       createdUserList.push(result.value);
+    //       // remove created user
+    //       const index = failedToCreateUserEmailList.indexOf(result.value.email);
+    //       failedToCreateUserEmailList.splice(index, 1);
+    //     }
+    //     else {
+    //       logger.error(result.reason);
+    //     }
+    //   });
 
 
     return { createdUserList, existingEmailList, failedToCreateUserEmailList };
     return { createdUserList, existingEmailList, failedToCreateUserEmailList };
   };
   };