Sfoglia il codice sorgente

bulk update imageUrlCache

yusuketk 6 anni fa
parent
commit
58ff2218aa
1 ha cambiato i file con 15 aggiunte e 3 eliminazioni
  1. 15 3
      src/server/routes/apiv3/users.js

+ 15 - 3
src/server/routes/apiv3/users.js

@@ -571,9 +571,21 @@ module.exports = (crowi) => {
   router.put('/update.imageUrlCache', loginRequiredStrictly, adminRequired, csrf, async(req, res) => {
   router.put('/update.imageUrlCache', loginRequiredStrictly, adminRequired, csrf, async(req, res) => {
     try {
     try {
       const userIds = req.body.userIds;
       const userIds = req.body.userIds;
-      // [TODO] update cache
-      const updatedUsers = await User.find({ _id: { $in: userIds } });
-      return res.apiv3({ updatedUsers });
+      const users = await User.find({ _id: { $in: userIds } });
+      const requests = users.map((user) => {
+        return {
+          updateOne: {
+            filter: { _id: user._id },
+            update: { $set: { imageUrlCached: user.generateImageUrlCached() } },
+          },
+        };
+      });
+
+      if (requests.length > 0) {
+        await User.bulkWrite(requests);
+      }
+
+      return res.apiv3({});
     }
     }
     catch (err) {
     catch (err) {
       logger.error('Error', err);
       logger.error('Error', err);