Advertisement
Guest User

Untitled

a guest
Sep 12th, 2016
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. var User = require('../models/user.server.model'),
  2. cloudinary = require('cloudinary'),
  3. gravatar = require('gravatar'),
  4. secrets = require('../../config/secrets'),
  5. token = require('../../config/token');
  6.  
  7. module.exports = {
  8. /**
  9. * Welcome Notice
  10. * @param req
  11. * @param res
  12. * @return Void
  13. */
  14. welcome: function(req, res){
  15. return res.status(200).json({ message: 'Welcome to Yourtube Api'});
  16. },
  17.  
  18. /**
  19. * Register User with Full Name, Email and password
  20. * @param req
  21. * @param res
  22. * @return Void
  23. */
  24. registerUser: function(req, res) {
  25.  
  26. User.findOne({ email: req.body.email }, '+password', function(err, existingUser) {
  27. if (existingUser) {
  28. return res.status(409).json({ message: 'Email is already taken' });
  29. }
  30.  
  31. // Obtain the avatar from gravatar service
  32. var secureImageUrl = gravatar.url(req.body.email, {s: '200', r: 'x', d: 'retro'}, true);
  33.  
  34. var user = new User({
  35. fullName: req.body.fullName,
  36. email: req.body.email,
  37. password: req.body.password,
  38. user_avatar: secureImageUrl
  39. });
  40.  
  41. user.save(function(err, result) {
  42. if (err) {
  43. res.status(500).json({ message: err.message });
  44. }
  45. res.send({ token: token.createJWT(result) });
  46. });
  47. });
  48. },
  49.  
  50. /**
  51. * Fetch Logged In User Details
  52. * @param req
  53. * @param res
  54. * @param next
  55. * @return Void
  56. */
  57. getLoggedInUserDetail: function(req, res) {
  58. User.findById(req.user, function(err, user) {
  59. res.send(user);
  60. });
  61. },
  62.  
  63. /**
  64. * Update Logged In User Details
  65. * @param req
  66. * @param res
  67. * @return json | void
  68. */
  69. updateLoggedInUserDetail: function(req, res) {
  70. User.findById(req.user, function(err, user) {
  71. if (!user) {
  72. return res.status(400).send({ message: 'User not found' });
  73. }
  74.  
  75. user.fullName = req.body.fullName || user.fullName;
  76. user.email = req.body.email || user.email;
  77.  
  78. user.save(function(err) {
  79. res.status(200).send({ message: 'Profile Update Succesfully'});
  80. });
  81. });
  82. },
  83.  
  84. /**
  85. * Authenticate a User via Email and Password
  86. * @param req
  87. * @param res
  88. * @return json
  89. */
  90. authenticate: function(req, res) {
  91.  
  92. User.findOne({ email: req.body.email }, function(err, user) {
  93. if (!user) {
  94. return res.status(401).json({ message: 'Invalid Email' });
  95. }
  96.  
  97. user.comparePassword(req.body.password, function(err, isMatch) {
  98. if (!isMatch) {
  99. return res.status(401).json({ message: 'Invalid Password' });
  100. }
  101. res.send({ token: token.createJWT(user) });
  102. });
  103. });
  104. }
  105. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement