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

move renamePage from model to service

itizawa 5 лет назад
Родитель
Сommit
d8edbede26
3 измененных файлов с 36 добавлено и 36 удалено
  1. 0 35
      src/server/models/page.js
  2. 1 1
      src/server/routes/apiv3/pages.js
  3. 35 0
      src/server/service/page.js

+ 0 - 35
src/server/models/page.js

@@ -1133,41 +1133,6 @@ module.exports = function(crowi) {
     await this.removeRedirectOriginPageByPath(redirectPage.path);
     await this.removeRedirectOriginPageByPath(redirectPage.path);
   };
   };
 
 
-  pageSchema.statics.rename = async function(pageData, newPagePath, user, options) {
-    validateCrowi();
-
-    const Page = this;
-    const Revision = crowi.model('Revision');
-    const path = pageData.path;
-    const createRedirectPage = options.createRedirectPage || false;
-    const updateMetadata = options.updateMetadata || false;
-    const socketClientId = options.socketClientId || null;
-
-    // sanitize path
-    newPagePath = crowi.xss.process(newPagePath); // eslint-disable-line no-param-reassign
-
-    // update Page
-    pageData.path = newPagePath;
-    if (updateMetadata) {
-      pageData.lastUpdateUser = user;
-      pageData.updatedAt = Date.now();
-    }
-    const updatedPageData = await pageData.save();
-
-    // update Rivisions
-    await Revision.updateRevisionListByPath(path, { path: newPagePath }, {});
-
-    if (createRedirectPage) {
-      const body = `redirect ${newPagePath}`;
-      await Page.create(path, body, user, { redirectTo: newPagePath });
-    }
-
-    pageEvent.emit('delete', pageData, user, socketClientId);
-    pageEvent.emit('create', updatedPageData, user, socketClientId);
-
-    return updatedPageData;
-  };
-
   pageSchema.statics.renameRecursively = async function(targetPage, newPagePathPrefix, user, options) {
   pageSchema.statics.renameRecursively = async function(targetPage, newPagePathPrefix, user, options) {
     validateCrowi();
     validateCrowi();
 
 

+ 1 - 1
src/server/routes/apiv3/pages.js

@@ -400,7 +400,7 @@ module.exports = (crowi) => {
         page = await Page.renameRecursively(page, newPagePath, req.user, options);
         page = await Page.renameRecursively(page, newPagePath, req.user, options);
       }
       }
       else {
       else {
-        page = await Page.rename(page, newPagePath, req.user, options);
+        page = await crowi.pageService.rename(page, newPagePath, req.user, options);
       }
       }
     }
     }
     catch (err) {
     catch (err) {

+ 35 - 0
src/server/service/page.js

@@ -21,6 +21,41 @@ class PageService {
     this.pageEvent.on('createMany', this.pageEvent.onCreateMany);
     this.pageEvent.on('createMany', this.pageEvent.onCreateMany);
   }
   }
 
 
+
+  async renamePage(pageData, newPagePath, user, options) {
+
+    const Page = this;
+    const Revision = this.crowi.model('Revision');
+    const path = pageData.path;
+    const createRedirectPage = options.createRedirectPage || false;
+    const updateMetadata = options.updateMetadata || false;
+    const socketClientId = options.socketClientId || null;
+
+    // sanitize path
+    newPagePath = this.crowi.xss.process(newPagePath); // eslint-disable-line no-param-reassign
+
+    // update Page
+    pageData.path = newPagePath;
+    if (updateMetadata) {
+      pageData.lastUpdateUser = user;
+      pageData.updatedAt = Date.now();
+    }
+    const updatedPageData = await pageData.save();
+
+    // update Rivisions
+    await Revision.updateRevisionListByPath(path, { path: newPagePath }, {});
+
+    if (createRedirectPage) {
+      const body = `redirect ${newPagePath}`;
+      await Page.create(path, body, user, { redirectTo: newPagePath });
+    }
+
+    this.pageEvent.emit('delete', pageData, user, socketClientId);
+    this.pageEvent.emit('create', updatedPageData, user, socketClientId);
+
+    return updatedPageData;
+  }
+
   async deleteCompletelyOperation(pageIds, pagePaths) {
   async deleteCompletelyOperation(pageIds, pagePaths) {
     // Delete Bookmarks, Attachments, Revisions, Pages and emit delete
     // Delete Bookmarks, Attachments, Revisions, Pages and emit delete
     const Bookmark = this.crowi.model('Bookmark');
     const Bookmark = this.crowi.model('Bookmark');