user.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. var userFetcher;
  43. if (!userIds || userIds.split(',').length <= 0) {
  44. userFetcher = User.findAllUsers()
  45. } else {
  46. userFetcher = User.findUsersByIds(userIds.split(','))
  47. }
  48. userFetcher
  49. .then(function(userList) {
  50. return userList.map((user) => {
  51. // omit email
  52. if (true !== user.isEmailPublished) { // compare to 'true' because Crowi original data doesn't have 'isEmailPublished'
  53. user.email = undefined;
  54. }
  55. return user;
  56. });
  57. })
  58. .then(function(userList) {
  59. var result = {
  60. users: userList,
  61. };
  62. return res.json(ApiResponse.success(result));
  63. }).catch(function(err) {
  64. return res.json(ApiResponse.error(err));
  65. });
  66. };
  67. return actions;
  68. };