Advertisement
Guest User

Untitled

a guest
Apr 11th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Router
  2. setupRouter() {
  3.     this.router.route('/signup')
  4.     /* POST /users/signup req.body = {email, password} */
  5.     .post(this.userController.registerUser.bind(this.userController))
  6.  
  7.     this.router.route('/signin')
  8.     /* POST /users/signin req.body = {email, password} */
  9.     .post(this.userController.loginUser.bind(this.userController))
  10. }
  11.  
  12. // Controller
  13. registerUser(req, res, next) {
  14.     const { email, password } = req.body
  15.     this.userService.registerUser(email, password)
  16.     .then(newUser => res.status(201).json({ newUser }))
  17.     .catch(error => res.status(422).json({ error }))
  18. }
  19.  
  20. // Service
  21. registerUser(email, password) {
  22.     return this.userResource.registerUser(email, password)
  23.     .then(res => res)
  24. }
  25.  
  26. // Resource
  27. async registerUser(email, password) {
  28.     const possibleUser = await User.findOne({ email })
  29.     if (possibleUser) throw new Error('Email already taken!')
  30.  
  31.     const newUser = new User({
  32.       _id: new mongoose.Types.ObjectId(),
  33.       email,
  34.       password
  35.     })
  36.  
  37.     const salt = await encrypt.genSalt(10)
  38.     const hashedPassword = await encrypt.genHash(newUser.password, salt)
  39.  
  40.     newUser.password = hashedPassword
  41.     return newUser.save()
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement