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

implement server-side filtering of revisions

WNomunomu 1 год назад
Родитель
Сommit
dd48dd8bf6
1 измененных файлов с 20 добавлено и 0 удалено
  1. 20 0
      apps/app/src/server/routes/apiv3/revisions.js

+ 20 - 0
apps/app/src/server/routes/apiv3/revisions.js

@@ -1,6 +1,7 @@
 import { ErrorV3 } from '@growi/core/dist/models';
 import { ErrorV3 } from '@growi/core/dist/models';
 import { serializeUserSecurely } from '@growi/core/dist/models/serializers';
 import { serializeUserSecurely } from '@growi/core/dist/models/serializers';
 import express from 'express';
 import express from 'express';
+import mongoose, { connection } from 'mongoose';
 
 
 import { Revision } from '~/server/models/revision';
 import { Revision } from '~/server/models/revision';
 import { normalizeLatestRevisionIfBroken } from '~/server/service/revision/normalize-latest-revision-if-broken';
 import { normalizeLatestRevisionIfBroken } from '~/server/service/revision/normalize-latest-revision-if-broken';
@@ -131,6 +132,16 @@ module.exports = (crowi) => {
 
 
     try {
     try {
       const page = await Page.findOne({ _id: pageId });
       const page = await Page.findOne({ _id: pageId });
+
+      const fileName = '20211227060705-revision-path-to-page-id-schema-migration--fixed-7549.js';
+      // const Migration = mongoose.models.Migration;
+      const Migration = connection.collection('migrations');
+      const migration = await Migration.findOne({ fileName });
+      const appliedAt = migration.appliedAt;
+
+      console.log(migration);
+      console.log(appliedAt);
+
       const queryOpts = {
       const queryOpts = {
         offset,
         offset,
         sort: { createdAt: -1 },
         sort: { createdAt: -1 },
@@ -154,6 +165,15 @@ module.exports = (crowi) => {
         }
         }
       });
       });
 
 
+      const isNotBrokenRevision = (doc) => {
+        const formattedRevisionCreatedAt = new Date(doc.createdAt);
+        const revisionBrokenBefore = new Date(appliedAt);
+
+        return formattedRevisionCreatedAt > revisionBrokenBefore;
+      };
+
+      paginateResult.docs.filter(isNotBrokenRevision);
+
       const result = {
       const result = {
         revisions: paginateResult.docs,
         revisions: paginateResult.docs,
         totalCount: paginateResult.totalDocs,
         totalCount: paginateResult.totalDocs,