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

move the method for getting page tags

yusuketk 7 лет назад
Родитель
Сommit
7e0430d90b

+ 1 - 1
src/client/js/components/Page/EditTagModal.jsx

@@ -27,7 +27,7 @@ export default class EditTagModal extends React.Component {
     // set pageTag on button
     const pageId = this.props.pageId;
     if (pageId) {
-      const res = await this.props.crowi.apiGet('/tags.get', { pageId });
+      const res = await this.props.crowi.apiGet('/pages.getPageTag', { pageId });
       this.setState({ currentPageTags: res.tags });
     }
   }

+ 3 - 3
src/server/routes/index.js

@@ -193,16 +193,16 @@ module.exports = function(crowi, app) {
   app.post('/_api/pages.create'       , accessTokenParser , loginRequired(crowi, app) , csrf, page.api.create);
   app.post('/_api/pages.update'       , accessTokenParser , loginRequired(crowi, app) , csrf, page.api.update);
   app.get('/_api/pages.get'           , accessTokenParser , loginRequired(crowi, app, false) , page.api.get);
-  app.get('/_api/pages.updatePost'    , accessTokenParser , loginRequired(crowi, app, false) , page.api.getUpdatePost);
+  app.get('/_api/pages.updatePost', accessTokenParser, loginRequired(crowi, app, false), page.api.getUpdatePost);
+  app.get('/_api/pages.getPageTag'    , accessTokenParser , loginRequired(crowi, app, false) , page.api.getPageTag);
   // allow posting to guests because the client doesn't know whether the user logged in
   app.post('/_api/pages.seen'         , accessTokenParser , loginRequired(crowi, app, false) , page.api.seen);
   app.post('/_api/pages.rename'       , accessTokenParser , loginRequired(crowi, app) , csrf, page.api.rename);
   app.post('/_api/pages.remove'       , loginRequired(crowi, app) , csrf, page.api.remove); // (Avoid from API Token)
   app.post('/_api/pages.revertRemove' , loginRequired(crowi, app) , csrf, page.api.revertRemove); // (Avoid from API Token)
   app.post('/_api/pages.unlink'       , loginRequired(crowi, app) , csrf, page.api.unlink); // (Avoid from API Token)
-  app.post('/_api/pages.duplicate'    , accessTokenParser, loginRequired(crowi, app), csrf, page.api.duplicate);
+  app.post('/_api/pages.duplicate', accessTokenParser, loginRequired(crowi, app), csrf, page.api.duplicate);
   app.get('/_api/tags.search'         , accessTokenParser, loginRequired(crowi, app, false), tag.api.search);
-  app.get('/_api/tags.get'            , accessTokenParser, loginRequired(crowi, app, false), tag.api.get);
   app.get('/_api/comments.get'        , accessTokenParser , loginRequired(crowi, app, false) , comment.api.get);
   app.post('/_api/comments.add'       , form.comment, accessTokenParser , loginRequired(crowi, app) , csrf, comment.api.add);
   app.post('/_api/comments.remove'    , accessTokenParser , loginRequired(crowi, app) , csrf, comment.api.remove);

+ 20 - 0
src/server/routes/page.js

@@ -8,6 +8,7 @@ module.exports = function(crowi, app) {
   const Config = crowi.model('Config');
   const config = crowi.getConfig();
   const Bookmark = crowi.model('Bookmark');
+  const PageTagRelation = crowi.model('PageTagRelation');
   const UpdatePost = crowi.model('UpdatePost');
   const ApiResponse = require('../util/apiResponse');
   const interceptorManager = crowi.getInterceptorManager();
@@ -718,6 +719,25 @@ module.exports = function(crowi, app) {
     return res.json(ApiResponse.success(result));
   };
 
+  /**
+   * @api {get} /pages.getPageTag get page tags
+   * @apiName GetPageTag
+   * @apiGroup Page
+   *
+   * @apiParam {String} pageId
+   */
+  api.getPageTag = async function(req, res) {
+    const result = {};
+    try {
+      const tags = await PageTagRelation.find({ relatedPage: req.query.pageId }).populate('relatedTag').select('-_id relatedTag');
+      result.tags = tags.map((tag) => { return tag.relatedTag.name });
+    }
+    catch (err) {
+      return res.json(ApiResponse.error(err));
+    }
+    return res.json(ApiResponse.success(result));
+  };
+
   /**
    * @api {post} /pages.seen Mark as seen user
    * @apiName SeenPage

+ 0 - 14
src/server/routes/tag.js

@@ -1,7 +1,6 @@
 module.exports = function(crowi, app) {
 
   const Tag = crowi.model('Tag');
-  const PageTagRelation = crowi.model('PageTagRelation');
   const ApiResponse = require('../util/apiResponse');
   const actions = {};
   const api = {};
@@ -22,18 +21,5 @@ module.exports = function(crowi, app) {
     return res.json(ApiResponse.success({ tags }));
   };
 
-  /**
-   * @api {get} /tags.get get page tags
-   * @apiName GetTag
-   * @apiGroup Tag
-   *
-   * @apiParam {String} pageId
-   */
-  api.get = async function(req, res) {
-    let tags = await PageTagRelation.find({ relatedPage: req.query.pageId }).populate('relatedTag').select('-_id relatedTag');
-    tags = tags.map((tag) => { return tag.relatedTag.name });
-    return res.json(ApiResponse.success({ tags }));
-  };
-
   return actions;
 };