|
|
@@ -1,15 +1,12 @@
|
|
|
module.exports = function(crowi, app) {
|
|
|
'use strict';
|
|
|
|
|
|
- var debug = require('debug')('growi:routes:bookmark')
|
|
|
- , Bookmark = crowi.model('Bookmark')
|
|
|
- , Page = crowi.model('Page')
|
|
|
- , User = crowi.model('User')
|
|
|
- , Revision = crowi.model('Revision')
|
|
|
- , Bookmark = crowi.model('Bookmark')
|
|
|
- , ApiResponse = require('../util/apiResponse')
|
|
|
- , actions = {}
|
|
|
- ;
|
|
|
+ const debug = require('debug')('growi:routes:bookmark');
|
|
|
+ const Bookmark = crowi.model('Bookmark');
|
|
|
+ const Page = crowi.model('Page');
|
|
|
+ const ApiResponse = require('../util/apiResponse');
|
|
|
+ const ApiPaginate = require('../util/apiPaginate');
|
|
|
+ let actions = {};
|
|
|
actions.api = {};
|
|
|
|
|
|
/**
|
|
|
@@ -20,20 +17,35 @@ module.exports = function(crowi, app) {
|
|
|
* @apiParam {String} page_id Page Id.
|
|
|
*/
|
|
|
actions.api.get = function(req, res) {
|
|
|
- var pageId = req.query.page_id;
|
|
|
+ let pageId = req.query.page_id;
|
|
|
|
|
|
Bookmark.findByPageIdAndUserId(pageId, req.user)
|
|
|
- .then(function(data) {
|
|
|
- debug('bookmark found', pageId, data);
|
|
|
- var result = {};
|
|
|
- if (data) {
|
|
|
- }
|
|
|
+ .then(function(data) {
|
|
|
+ debug('bookmark found', pageId, data);
|
|
|
+ let result = {};
|
|
|
|
|
|
- result.bookmark = data;
|
|
|
- return res.json(ApiResponse.success(result));
|
|
|
- }).catch(function(err) {
|
|
|
- return res.json(ApiResponse.error(err));
|
|
|
- });
|
|
|
+ result.bookmark = data;
|
|
|
+ return res.json(ApiResponse.success(result));
|
|
|
+ })
|
|
|
+ .catch(function(err) {
|
|
|
+ return res.json(ApiResponse.error(err));
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ */
|
|
|
+ actions.api.list = function(req, res) {
|
|
|
+ let paginateOptions = ApiPaginate.parseOptions(req.query);
|
|
|
+
|
|
|
+ let options = Object.assign(paginateOptions, { populatePage: true });
|
|
|
+ Bookmark.findByUserId(req.user._id, options)
|
|
|
+ .then(function(result) {
|
|
|
+ return res.json(ApiResponse.success(result));
|
|
|
+ })
|
|
|
+ .catch(function(err) {
|
|
|
+ return res.json(ApiResponse.error(err));
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
@@ -43,27 +55,21 @@ module.exports = function(crowi, app) {
|
|
|
*
|
|
|
* @apiParam {String} page_id Page Id.
|
|
|
*/
|
|
|
- actions.api.add = function(req, res) {
|
|
|
- var pageId = req.body.page_id;
|
|
|
+ actions.api.add = async function(req, res) {
|
|
|
+ const pageId = req.body.page_id;
|
|
|
+
|
|
|
+ const page = await Page.findByIdAndViewer(pageId, req.user);
|
|
|
+ if (page == null) {
|
|
|
+ return res.json(ApiResponse.success({ bookmark: null }));
|
|
|
+ }
|
|
|
|
|
|
- Page.findByIdAndGrantedUser(pageId, req.user)
|
|
|
- .then(function(pageData) {
|
|
|
- if (pageData) {
|
|
|
- return Bookmark.add(pageData, req.user);
|
|
|
- }
|
|
|
- else {
|
|
|
- return res.json(ApiResponse.success({bookmark: null}));
|
|
|
- }
|
|
|
- }).then(function(data) {
|
|
|
- var result = {};
|
|
|
- data.depopulate('page');
|
|
|
- data.depopulate('user');
|
|
|
+ const bookmark = await Bookmark.add(page, req.user);
|
|
|
|
|
|
- result.bookmark = data;
|
|
|
- return res.json(ApiResponse.success(result));
|
|
|
- }).catch(function(err) {
|
|
|
- return res.json(ApiResponse.error(err));
|
|
|
- });
|
|
|
+ bookmark.depopulate('page');
|
|
|
+ bookmark.depopulate('user');
|
|
|
+ const result = { bookmark };
|
|
|
+
|
|
|
+ return res.json(ApiResponse.success(result));
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
@@ -74,17 +80,17 @@ module.exports = function(crowi, app) {
|
|
|
* @apiParam {String} page_id Page Id.
|
|
|
*/
|
|
|
actions.api.remove = function(req, res) {
|
|
|
- var pageId = req.body.page_id;
|
|
|
+ let pageId = req.body.page_id;
|
|
|
|
|
|
Bookmark.removeBookmark(pageId, req.user)
|
|
|
- .then(function(data) {
|
|
|
- debug('Bookmark removed.', data); // if the bookmark is not exists, this 'data' is null
|
|
|
- return res.json(ApiResponse.success());
|
|
|
- }).catch(function(err) {
|
|
|
- return res.json(ApiResponse.error(err));
|
|
|
- });
|
|
|
+ .then(function(data) {
|
|
|
+ debug('Bookmark removed.', data); // if the bookmark is not exists, this 'data' is null
|
|
|
+ return res.json(ApiResponse.success());
|
|
|
+ })
|
|
|
+ .catch(function(err) {
|
|
|
+ return res.json(ApiResponse.error(err));
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
-
|
|
|
return actions;
|
|
|
};
|