users.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. var express = require('express');
  2. var router = express.Router();
  3. let JSONError = require('../helpers').JSONError;
  4. let Users = require('../database').Repositories.Users;
  5. /* GET users listing. */
  6. router.get('/me', function(req, res, next) {
  7. console.log(req.user);
  8. res.send(req.user);
  9. });
  10. /* post users login. */
  11. router.post('/login', function(req, res, next) {
  12. const params = {...req.body};
  13. const {
  14. username,
  15. password
  16. } = params;
  17. console.log(username);
  18. Users.login({username, password}).
  19. then((user) => {
  20. let {
  21. username,
  22. token
  23. } = user;
  24. res.send({username, token});
  25. }).
  26. catch((e) => {
  27. console.log(e);
  28. res.status(400);
  29. res.send(JSONError("Bad Credentials"));
  30. });
  31. });
  32. /* post users register. */
  33. router.post('/register', function(req, res, next) {
  34. const params = {...req.body};
  35. const {
  36. username,
  37. password
  38. } = params;
  39. console.log(username);
  40. Users.register({username, password}).
  41. then((user) => res.send(user)).
  42. catch((e) => {
  43. console.log(e);
  44. res.status(400);
  45. res.send(JSONError("Bad Credentials"));
  46. });
  47. });
  48. /* post add friend. */
  49. router.post('/addFriend/:id', function(req, res, next) {
  50. if(!req.user) {
  51. res.status(401);
  52. res.send(JSONError("I need token honey!"));
  53. return;
  54. }
  55. const friendID = req.params.id;
  56. let msg = 'Enjoy your new friendship!';
  57. Users.getByID(friendID).
  58. then((user) => {
  59. if (!req.user.friends) {
  60. req.user.friends = [friendID];
  61. return Users.save(req.user);
  62. } else if (req.user.friends.includes(friendID)) {
  63. msg = 'Already friends ^.^';
  64. return 1;
  65. } else {
  66. req.user.friends.push(friendID);
  67. return Users.save(req.user);
  68. }
  69. }).
  70. then(() => res.send({ msg })).
  71. catch((e) => {
  72. console.log(e);
  73. res.status(400);
  74. res.send(JSONError("No such friend... :("));
  75. });
  76. });
  77. module.exports = router;