user.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. var result = {
  51. users: userList,
  52. };
  53. return res.json(ApiResponse.success(result));
  54. }).catch(function(err) {
  55. return res.json(ApiResponse.error(err));
  56. });
  57. };
  58. return actions;
  59. };