revision.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. module.exports = function(crowi, app) {
  2. 'use strict';
  3. var debug = require('debug')('crowi:routes:revision')
  4. , Page = crowi.model('Page')
  5. , Revision = crowi.model('Revision')
  6. , ApiResponse = require('../util/apiResponse')
  7. , actions = {}
  8. ;
  9. actions.api = {};
  10. /**
  11. * @api {get} /revisions.get Get revision
  12. * @apiName GetRevision
  13. * @apiGroup Revision
  14. *
  15. * @apiParam {String} revision_id Revision Id.
  16. */
  17. actions.api.get = function(req, res) {
  18. var revisionId = req.query.revision_id;
  19. Revision
  20. .findRevision(revisionId)
  21. .then(function(revisionData) {
  22. return res.json(ApiResponse.success(revisionData));
  23. })
  24. .catch(function(err) {
  25. return res.json(ApiResponse.error(err));
  26. });
  27. };
  28. /**
  29. * @api {get} /revisions.list Get revisions
  30. * @apiName ListRevision
  31. * @apiGroup Revision
  32. *
  33. * @apiParam {String} revision_ids Revision Ids.
  34. * @apiParam {String} page_id Page Id.
  35. */
  36. actions.api.list = function(req, res) {
  37. var revisionIds = (req.query.revision_ids || '').split(',');
  38. var pageId = req.query.page_id || null;
  39. if (pageId) {
  40. Page.findPageByIdAndGrantedUser(pageId, req.user)
  41. .then(function(pageData) {
  42. debug('Page found', pageData._id, pageData.path);
  43. return Revision.findRevisionList(pageData.path, {});
  44. }).then(function(revisions) {
  45. return res.json(ApiResponse.success(revisions));
  46. }).catch(function(err) {
  47. return res.json(ApiResponse.error(err));
  48. });
  49. } else if (revisionIds.length > 0) {
  50. Revision.findRevisions(revisionIds)
  51. .then(function(revisions) {
  52. return res.json(ApiResponse.success(revisions));
  53. }).catch(function(err) {
  54. return res.json(ApiResponse.error(err));
  55. });
  56. } else {
  57. return res.json(ApiResponse.error('Parameter error.'));
  58. }
  59. };
  60. return actions;
  61. };