Guest User

Untitled

a guest
Dec 1st, 2018
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. import { models } from '../../db'
  2.  
  3. import bcrypt from 'bcrypt'
  4.  
  5. import { isEmpty } from '../util/validation'
  6.  
  7. import createSubscription from '../subscription/createSubscription'
  8.  
  9. import findUserByEmail from '../../db/queries/user/findUserByEmail'
  10.  
  11. import sendRegistrationEmail from '../mail/sendRegistrationEmail'
  12.  
  13. import generateVerificationToken from '../auth/generateVerificationToken'
  14.  
  15. import generateAuthenticationToken from '../auth/generateAuthenticationToken'
  16.  
  17. export default async (email: String, password: String, planId: String): Object => {
  18.  
  19. // Validate user data
  20.  
  21. if(isEmpty(email) || isEmpty(password)){
  22.  
  23. throw "Email or password invalid"
  24.  
  25. }
  26.  
  27. // if(isEmpty(planId)) {
  28.  
  29. // return reject("No package selected")
  30.  
  31. // }
  32.  
  33. if(await findUserByEmail(email) !== null) {
  34.  
  35. throw "Email address already taken"
  36.  
  37. }
  38.  
  39. // Save user
  40.  
  41. const user = await models.User.build({
  42.  
  43. email: email,
  44.  
  45. password: await bcrypt.hash(password, 10)
  46.  
  47. }).save()
  48.  
  49. // // Add subscription
  50.  
  51. // try {
  52.  
  53. // const subscription = await createSubscription(user, planId)
  54.  
  55. // } catch (error) {
  56.  
  57. // reject(error)
  58.  
  59. // }
  60.  
  61. //Add verificationToken to verify Email
  62.  
  63. const verificationToken = await generateVerificationToken(user)
  64.  
  65. await sendRegistrationEmail(user, verificationToken)
  66.  
  67. // Log in the user
  68.  
  69. const authenticationToken = await generateAuthenticationToken(user)
  70.  
  71. return {
  72.  
  73. authenticationToken,
  74.  
  75. user
  76.  
  77. }
  78.  
  79. }
Add Comment
Please, Sign In to add comment