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

WIP: refactor models/page.js

* fix unlink
Yuki Takei 7 лет назад
Родитель
Сommit
f58efe65a6
3 измененных файлов с 13 добавлено и 22 удалено
  1. 0 5
      src/server/models/page.js
  2. 12 15
      src/server/routes/page.js
  3. 1 2
      src/server/views/widget/page_alerts.html

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

@@ -1133,11 +1133,6 @@ module.exports = function(crowi) {
    * @param {string} pagePath
    * @param {string} pagePath
    */
    */
   pageSchema.statics.removeRedirectOriginPageByPath = async function(pagePath) {
   pageSchema.statics.removeRedirectOriginPageByPath = async function(pagePath) {
-    const isExist = await this.count({ path: pagePath }) > 0;
-    if (!isExist) {
-      return;
-    }
-
     const redirectPage = await this.findByRedirectTo(pagePath);
     const redirectPage = await this.findByRedirectTo(pagePath);
 
 
     if (redirectPage == null) {
     if (redirectPage == null) {

+ 12 - 15
src/server/routes/page.js

@@ -1031,25 +1031,22 @@ module.exports = function(crowi, app) {
    * @apiParam {String} page_id Page Id.
    * @apiParam {String} page_id Page Id.
    * @apiParam {String} revision_id
    * @apiParam {String} revision_id
    */
    */
-  api.unlink = function(req, res) {
-    const pageId = req.body.page_id;
-
-    Page.findByIdAndGrantedUser(pageId, req.user)
-    .then(function(pageData) {
-      debug('Unlink page', pageData._id, pageData.path);
+  api.unlink = async function(req, res) {
+    const path = req.body.path;
 
 
-      return Page.removeRedirectOriginPageByPath(pageData.path)
-        .then(() => pageData);
-    }).then(function(data) {
-      debug('Redirect Page deleted', data.path);
+    let page;
+    try {
+      page = await Page.removeRedirectOriginPageByPath(path);
+      logger.debug('Redirect Page deleted', path);
+    }
+    catch (err) {
+      logger.error('Error occured while get setting', err);
+      return res.json(ApiResponse.error('Failed to delete redirect page.'));
+    }
       const result = {};
       const result = {};
-      result.page = data;   // TODO consider to use serializeToObj method -- 2018.08.06 Yuki Takei
+    result.page = page;   // TODO consider to use serializeToObj method -- 2018.08.06 Yuki Takei
 
 
       return res.json(ApiResponse.success(result));
       return res.json(ApiResponse.success(result));
-    }).catch(function(err) {
-      debug('Error occured while get setting', err, err.stack);
-      return res.json(ApiResponse.error('Failed to delete redirect page.'));
-    });
   };
   };
 
 
   api.recentCreated = async function(req, res) {
   api.recentCreated = async function(req, res) {

+ 1 - 2
src/server/views/widget/page_alerts.html

@@ -48,8 +48,7 @@
       {% if user %}
       {% if user %}
       <form role="form" id="unlink-page-form" onsubmit="return false;">
       <form role="form" id="unlink-page-form" onsubmit="return false;">
         <input type="hidden" name="_csrf" value="{{ csrf() }}">
         <input type="hidden" name="_csrf" value="{{ csrf() }}">
-        <input type="hidden" name="path" value="{{ page.path }}">
-        <input type="hidden" name="page_id" value="{{ page._id.toString() }}">
+        <input type="hidden" name="path" value="{{ path }}">
         <button type="submit" class="btn btn-default btn-sm pull-right">
         <button type="submit" class="btn btn-default btn-sm pull-right">
           <i class="ti-unlink" aria-hidden="true"></i>
           <i class="ti-unlink" aria-hidden="true"></i>
           Unlink
           Unlink