user.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. module.exports = function(crowi, app) {
  2. 'use strict';
  3. var Page = crowi.model('Page')
  4. , User = crowi.model('User')
  5. , Revision = crowi.model('Revision')
  6. , Bookmark = crowi.model('Bookmark')
  7. , ApiResponse = require('../util/apiResponse')
  8. , actions = {}
  9. , api = {};
  10. actions.api = api;
  11. api.bookmarks = function(req, res) {
  12. var options = {
  13. skip: req.query.offset || 0,
  14. limit: req.query.limit || 50,
  15. };
  16. Bookmark.findByUser(req.user, options, function (err, bookmarks) {
  17. res.json(bookmarks);
  18. });
  19. };
  20. api.checkUsername = function(req, res) {
  21. var username = req.query.username;
  22. User.findUserByUsername(username)
  23. .then(function(userData) {
  24. if (userData) {
  25. return res.json({ valid: false });
  26. } else {
  27. return res.json({ valid: true });
  28. }
  29. }).catch(function(err) {
  30. return res.json({ valid: true });
  31. });
  32. };
  33. /**
  34. * @api {get} /users.list Get user list
  35. * @apiName GetUserList
  36. * @apiGroup User
  37. *
  38. * @apiParam {String} user_ids
  39. */
  40. api.list = function(req, res) {
  41. var userIds = req.query.user_ids || null; // TODO: handling
  42. if (!userIds || userIds.split(',').length <= 0) {
  43. return res.json(ApiResponse.error('user_ids param is required'));
  44. }
  45. User.findUsersByIds(userIds.split(','))
  46. .then(function(userList) {
  47. var result = {
  48. users: userList,
  49. };
  50. return res.json(ApiResponse.success(result));
  51. }).catch(function(err) {
  52. return res.json(ApiResponse.error(err));
  53. });
  54. };
  55. return actions;
  56. };