Просмотр исходного кода

Check if createdAt exist on last activity object

arvid-e 3 недель назад
Родитель
Сommit
9d69b0af88
1 измененных файлов с 9 добавлено и 10 удалено
  1. 9 10
      apps/app/src/server/routes/apiv3/page/update-page.ts

+ 9 - 10
apps/app/src/server/routes/apiv3/page/update-page.ts

@@ -52,8 +52,8 @@ interface UpdatePageRequest
   user: IUserHasId;
   user: IUserHasId;
 }
 }
 
 
-const minimumRevisionForActivity = 2;
-const suppressUpdateWindowMs = 5 * 60 * 1000; // 5 min
+const MINIMUM_REVISION_FOR_ACTIVITY = 2;
+const SUPPRESION_UPDATE_WINDOW_MS = 5 * 60 * 1000; // 5 min
 
 
 export const updatePageHandlersFactory = (crowi: Crowi): RequestHandler[] => {
 export const updatePageHandlersFactory = (crowi: Crowi): RequestHandler[] => {
   const Page = mongoose.model<IPage, PageModel>('Page');
   const Page = mongoose.model<IPage, PageModel>('Page');
@@ -138,21 +138,20 @@ export const updatePageHandlersFactory = (crowi: Crowi): RequestHandler[] => {
         _id: { $ne: res.locals.activity?._id },
         _id: { $ne: res.locals.activity?._id },
       }).sort({ createdAt: -1 });
       }).sort({ createdAt: -1 });
 
 
+      const currentUserId = req.user?._id?.toString();
+
       const isLastActivityByMe =
       const isLastActivityByMe =
-        req.user?._id != null &&
-        lastContentActivity?.user?._id?.toString() ===
-          req.user?._id?.toString();
+        !!currentUserId &&
+        lastContentActivity?.user?._id?.toString() === currentUserId;
 
 
-      const lastActivityTime = lastContentActivity
-        ? lastContentActivity.createdAt.getTime()
-        : 0;
+      const lastActivityTime = lastContentActivity?.createdAt?.getTime?.() ?? 0;
       const timeSinceLastActivityMs = Date.now() - lastActivityTime;
       const timeSinceLastActivityMs = Date.now() - lastActivityTime;
 
 
       // Decide if update activity should generate
       // Decide if update activity should generate
       let shouldGenerateUpdateActivity: boolean;
       let shouldGenerateUpdateActivity: boolean;
       if (!isLastActivityByMe) {
       if (!isLastActivityByMe) {
         shouldGenerateUpdateActivity = true;
         shouldGenerateUpdateActivity = true;
-      } else if (timeSinceLastActivityMs < suppressUpdateWindowMs) {
+      } else if (timeSinceLastActivityMs < SUPPRESION_UPDATE_WINDOW_MS) {
         shouldGenerateUpdateActivity = false;
         shouldGenerateUpdateActivity = false;
       } else {
       } else {
         const Revision = mongoose.model<IRevisionHasId>('Revision');
         const Revision = mongoose.model<IRevisionHasId>('Revision');
@@ -161,7 +160,7 @@ export const updatePageHandlersFactory = (crowi: Crowi): RequestHandler[] => {
         });
         });
 
 
         shouldGenerateUpdateActivity =
         shouldGenerateUpdateActivity =
-          revisionCount > minimumRevisionForActivity;
+          revisionCount > MINIMUM_REVISION_FOR_ACTIVITY;
       }
       }
 
 
       if (shouldGenerateUpdateActivity) {
       if (shouldGenerateUpdateActivity) {