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

Modified the code based off the first FB

Shunm634-source 3 лет назад
Родитель
Сommit
e816889512

+ 0 - 1
packages/app/src/server/models/activity.ts

@@ -62,7 +62,6 @@ const activitySchema = new Schema<ActivityDocument, ActivityModel>({
   },
   target: {
     type: Schema.Types.ObjectId,
-    ref: 'Page',
     refPath: 'targetModel',
   },
   eventModel: {

+ 2 - 2
packages/app/src/server/routes/apiv3/pages.js

@@ -501,7 +501,7 @@ module.exports = (crowi) => {
       isMoveMode: req.body.isMoveMode,
     };
 
-    const nOptions = {
+    const activityParameters = {
       ip: req.ip,
       endpoint: req.originalUrl,
       activityId: res.locals.activity._id,
@@ -539,7 +539,7 @@ module.exports = (crowi) => {
       if (!page.isEmpty && !page.isUpdatable(revisionId)) {
         return res.apiv3Err(new ErrorV3('Someone could update this page, so couldn\'t delete.', 'notfound_or_forbidden'), 409);
       }
-      renamedPage = await crowi.pageService.renamePage(page, newPagePath, req.user, options, nOptions);
+      renamedPage = await crowi.pageService.renamePage(page, newPagePath, req.user, options, activityParameters);
     }
     catch (err) {
       logger.error(err);

+ 13 - 13
packages/app/src/server/service/page.ts

@@ -350,15 +350,15 @@ class PageService {
       .cursor({ batchSize: BULK_REINDEX_SIZE });
   }
 
-  async renamePage(page: IPage, newPagePath, user, options, nOptions): Promise<PageDocument | null> {
+  async renamePage(page: IPage, newPagePath, user, options, activityParameters): Promise<PageDocument | null> {
     /*
      * Common Operation
      */
     const Page = mongoose.model('Page') as unknown as PageModel;
 
     const parameters = {
-      ip: nOptions.ip,
-      endpoint: nOptions.endpoint,
+      ip: activityParameters.ip,
+      endpoint: activityParameters.endpoint,
       action: page.descendantCount > 0 ? SupportedAction.ACTION_PAGE_RECURSIVELY_RENAME : SupportedAction.ACTION_PAGE_RENAME,
       user,
       snapshot: {
@@ -417,20 +417,20 @@ class PageService {
       logger.error('Failed to create PageOperation document.', err);
       throw err;
     }
-    const renamedPage = await this.renameMainOperation(page, newPagePath, user, options, pageOp._id, nOptions);
+    const renamedPage = await this.renameMainOperation(page, newPagePath, user, options, pageOp._id, activityParameters);
     if (!options.isRecursively) {
       const parameters = {
         targetModel: SupportedTargetModel.MODEL_PAGE,
         target: page,
         action: SupportedAction.ACTION_PAGE_RENAME,
       };
-      this.activityEvent.emit('update', nOptions.activityId, parameters, page);
+      this.activityEvent.emit('update', activityParameters.activityId, parameters, page);
     }
 
     return renamedPage;
   }
 
-  async renameMainOperation(page, newPagePath: string, user, options, pageOpId: ObjectIdLike, nOptions): Promise<PageDocument | null> {
+  async renameMainOperation(page, newPagePath: string, user, options, pageOpId: ObjectIdLike, activityParameters): Promise<PageDocument | null> {
     const Page = mongoose.model('Page') as unknown as PageModel;
 
     const updateMetadata = options.updateMetadata || false;
@@ -515,12 +515,12 @@ class PageService {
     /*
      * Sub Operation
      */
-    this.renameSubOperation(page, newPagePath, user, options, renamedPage, pageOp._id, nOptions);
+    this.renameSubOperation(page, newPagePath, user, options, renamedPage, pageOp._id, activityParameters);
 
     return renamedPage;
   }
 
-  async renameSubOperation(page, newPagePath: string, user, options, renamedPage, pageOpId: ObjectIdLike, nOptions?): Promise<void> {
+  async renameSubOperation(page, newPagePath: string, user, options, renamedPage, pageOpId: ObjectIdLike, activityParameters?): Promise<void> {
     const Page = mongoose.model('Page') as unknown as PageModel;
 
     const exParentId = page.parent;
@@ -534,7 +534,7 @@ class PageService {
     try {
     // update descendants first
       const descendantPages = await this.renameDescendantsWithStream(page, newPagePath, user, options, false);
-      this.activityEvent.emit('update', nOptions.activityId, parameters, page, descendantPages);
+      this.activityEvent.emit('update', activityParameters.activityId, parameters, page, descendantPages);
     }
     catch (err) {
       logger.warn(err);
@@ -565,7 +565,7 @@ class PageService {
     await PageOperation.findByIdAndDelete(pageOpId);
   }
 
-  async resumeRenameSubOperation(renamedPage: PageDocument, pageOp: PageOperationDocument, nOptions?): Promise<void> {
+  async resumeRenameSubOperation(renamedPage: PageDocument, pageOp: PageOperationDocument, activityParameters?): Promise<void> {
     const isProcessable = pageOp.isProcessable();
     if (!isProcessable) {
       throw Error('This page operation is currently being processed');
@@ -578,7 +578,7 @@ class PageService {
       page, fromPath, toPath, options, user,
     } = pageOp;
 
-    this.fixPathsAndDescendantCountOfAncestors(page, user, options, renamedPage, pageOp._id, fromPath, toPath, nOptions);
+    this.fixPathsAndDescendantCountOfAncestors(page, user, options, renamedPage, pageOp._id, fromPath, toPath, activityParameters);
   }
 
   /**
@@ -586,8 +586,8 @@ class PageService {
    * `renameSubOperation` to restart rename operation
    * `updateDescendantCountOfPagesWithPaths` to fix descendantCount of ancestors
    */
-  private async fixPathsAndDescendantCountOfAncestors(page, user, options, renamedPage, pageOpId, fromPath, toPath, nOptions?): Promise<void> {
-    await this.renameSubOperation(page, toPath, user, options, renamedPage, pageOpId, nOptions);
+  private async fixPathsAndDescendantCountOfAncestors(page, user, options, renamedPage, pageOpId, fromPath, toPath, activityParameters?): Promise<void> {
+    await this.renameSubOperation(page, toPath, user, options, renamedPage, pageOpId, activityParameters);
     const ancestorsPaths = this.crowi.pageOperationService.getAncestorsPathsByFromAndToPath(fromPath, toPath);
     await this.updateDescendantCountOfPagesWithPaths(ancestorsPaths);
   }

+ 2 - 2
packages/app/test/integration/service/v5.non-public-page.test.ts

@@ -859,10 +859,10 @@ describe('PageService page operations with non-public pages', () => {
   });
 
   describe('Rename', () => {
-    const renamePage = async(page, newPagePath, user, options, nOptions?) => {
+    const renamePage = async(page, newPagePath, user, options, activityParameters?) => {
       // mock return value
       const mockedRenameSubOperation = jest.spyOn(crowi.pageService, 'renameSubOperation').mockReturnValue(null);
-      const renamedPage = await crowi.pageService.renamePage(page, newPagePath, user, options, nOptions);
+      const renamedPage = await crowi.pageService.renamePage(page, newPagePath, user, options, activityParameters);
 
       // retrieve the arguments passed when calling method renameSubOperation inside renamePage method
       const argsForRenameSubOperation = mockedRenameSubOperation.mock.calls[0];

+ 6 - 6
packages/app/test/integration/service/v5.page.test.ts

@@ -489,9 +489,9 @@ describe('Test page service methods', () => {
   });
 
   describe('restart renameOperation', () => {
-    const resumeRenameSubOperation = async(renamePage, pageOp, nOptions?) => {
+    const resumeRenameSubOperation = async(renamePage, pageOp, activityParameters?) => {
       const mockedPathsAndDescendantCountOfAncestors = jest.spyOn(crowi.pageService, 'fixPathsAndDescendantCountOfAncestors').mockReturnValue(null);
-      await crowi.pageService.resumeRenameSubOperation(renamePage, pageOp, nOptions);
+      await crowi.pageService.resumeRenameSubOperation(renamePage, pageOp, activityParameters);
 
       const argsForRenameSubOperation = mockedPathsAndDescendantCountOfAncestors.mock.calls[0];
 
@@ -513,7 +513,7 @@ describe('Test page service methods', () => {
       const path3 = '/resume_rename_0/resume_rename_1/resume_rename_2/resume_rename_3';
 
       // activity options
-      const nOptions = {
+      const activityParameters = {
         ip: '::ffff:127.0.0.1',
         endpoint: '/_api/v3/pages/rename',
         activityId: '62e291bc10e0ab61bd691794',
@@ -543,7 +543,7 @@ describe('Test page service methods', () => {
       expect(_pageOperation).toBeTruthy();
 
       // rename
-      await resumeRenameSubOperation(_page1, _pageOperation, nOptions);
+      await resumeRenameSubOperation(_page1, _pageOperation, activityParameters);
 
       // page
       const page0 = await Page.findById(_page0._id);
@@ -581,7 +581,7 @@ describe('Test page service methods', () => {
       const path2 = '/resume_rename_8/resume_rename_9/resume_rename_10';
 
       // activity options
-      const nOptions = {
+      const activityParameters = {
         ip: '::ffff:127.0.0.1',
         endpoint: '/_api/v3/pages/rename',
         activityId: '62e291bc10e0ab61bd691794',
@@ -608,7 +608,7 @@ describe('Test page service methods', () => {
       expect(_pageOperation).toBeTruthy();
 
       // rename
-      await resumeRenameSubOperation(_page1, _pageOperation, nOptions);
+      await resumeRenameSubOperation(_page1, _pageOperation, activityParameters);
 
       // page
       const page0 = await Page.findById(_page0._id);

+ 5 - 5
packages/app/test/integration/service/v5.public-page.test.ts

@@ -430,7 +430,7 @@ describe('PageService page operations with only public pages', () => {
           createRedirectPage: false,
           updateMetadata: true,
         },
-        nOptions: {
+        activityParameters: {
           ip: '::ffff:127.0.0.1',
           endpoint: '/_api/v3/pages/rename',
           activityId: activityId1,
@@ -1145,10 +1145,10 @@ describe('PageService page operations with only public pages', () => {
 
   describe('Rename', () => {
 
-    const renamePage = async(page, newPagePath, user, options, nOptions?) => {
+    const renamePage = async(page, newPagePath, user, options, activityParameters?) => {
       // mock return value
       const mockedRenameSubOperation = jest.spyOn(crowi.pageService, 'renameSubOperation').mockReturnValue(null);
-      const renamedPage = await crowi.pageService.renamePage(page, newPagePath, user, options, nOptions);
+      const renamedPage = await crowi.pageService.renamePage(page, newPagePath, user, options, activityParameters);
 
       // retrieve the arguments passed when calling method renameSubOperation inside renamePage method
       const argsForRenameSubOperation = mockedRenameSubOperation.mock.calls[0];
@@ -1165,7 +1165,7 @@ describe('PageService page operations with only public pages', () => {
     /**
      * This function only execute renameMainOperation. renameSubOperation is basically omitted(only return null)
      */
-    const renameMainOperation = async(page, newPagePath, user, options, nOptions?) => {
+    const renameMainOperation = async(page, newPagePath, user, options, activityParameters?) => {
       // create page operation from target page
       const pageOp = await PageOperation.create({
         actionType: PageActionType.Rename,
@@ -1179,7 +1179,7 @@ describe('PageService page operations with only public pages', () => {
 
       // mock return value
       const mockedRenameSubOperation = jest.spyOn(crowi.pageService, 'renameSubOperation').mockReturnValue(null);
-      const renamedPage = await crowi.pageService.renameMainOperation(page, newPagePath, user, options, pageOp._id, nOptions);
+      const renamedPage = await crowi.pageService.renameMainOperation(page, newPagePath, user, options, pageOp._id, activityParameters);
 
       // restores the original implementation
       mockedRenameSubOperation.mockRestore();