Explorar el Código

add completelyDeletePage to page.js service

zamis hace 5 años
padre
commit
4319e22d1a
Se han modificado 2 ficheros con 30 adiciones y 21 borrados
  1. 0 21
      src/server/models/page.js
  2. 30 0
      src/server/service/page.js

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

@@ -1182,27 +1182,6 @@ module.exports = function(crowi) {
     return updatedPage;
     return updatedPage;
   };
   };
 
 
-  /**
-   * This is danger.
-   */
-  // TODO: transplant to service/page.js because page deletion affects various models data
-  pageSchema.statics.completelyDeletePage = async function(pageData, user, options = {}) {
-    validateCrowi();
-
-    const { _id, path } = pageData;
-    const socketClientId = options.socketClientId || null;
-
-    logger.debug('Deleting completely', path);
-
-    await crowi.pageService.deleteCompletely(_id, path);
-
-    if (socketClientId != null) {
-      pageEvent.emit('delete', pageData, user, socketClientId); // update as renamed page
-    }
-    return pageData;
-  };
-
-
   pageSchema.statics.removeByPath = function(path) {
   pageSchema.statics.removeByPath = function(path) {
     if (path == null) {
     if (path == null) {
       throw new Error('path is required');
       throw new Error('path is required');

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

@@ -1,5 +1,6 @@
 const mongoose = require('mongoose');
 const mongoose = require('mongoose');
 const escapeStringRegexp = require('escape-string-regexp');
 const escapeStringRegexp = require('escape-string-regexp');
+const logger = require('@alias/logger')('growi:models:page');
 const { serializePageSecurely } = require('../models/serializers/page-serializer');
 const { serializePageSecurely } = require('../models/serializers/page-serializer');
 
 
 class PageService {
 class PageService {
@@ -94,6 +95,35 @@ class PageService {
     return newParentpage;
     return newParentpage;
   }
   }
 
 
+
+  async completelyDeletePage(pageData, user, options = {}) {
+
+    // let pageEvent;
+    // // init event
+    // if (crowi != null) {
+    //   pageEvent = crowi.event('page');
+    //   pageEvent.on('create', pageEvent.onCreate);
+    //   pageEvent.on('update', pageEvent.onUpdate);
+    // }
+
+
+    const Page = this.crowi.model('Page');
+
+    Page.validateCrowi();
+
+    const { _id, path } = pageData;
+    const socketClientId = options.socketClientId || null;
+
+    logger.debug('Deleting completely', path);
+
+    await this.deleteCompletely(_id, path);
+
+    if (socketClientId != null) {
+      pageEvent.emit('delete', pageData, user, socketClientId); // update as renamed page
+    }
+    return pageData;
+  }
+
   /**
   /**
    * Delete Bookmarks, Attachments, Revisions, Pages and emit delete
    * Delete Bookmarks, Attachments, Revisions, Pages and emit delete
    */
    */