Advertisement
Guest User

Untitled

a guest
Aug 9th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. router.post('/', (req, res, next) => {
  2.   const requiredFields = ['username', 'password', 'firstName', 'lastName'];
  3.   const missingField = requiredFields.find(field => !(field in req.body));
  4.  
  5.     if (missingField) {
  6.         return res.status(422).json({
  7.             code: 422,
  8.             reason: 'ValidationError',
  9.             message: 'Missing field',
  10.             location: missingField
  11.         });
  12.     }
  13.  
  14.     let { username, password, firstName, lastName } = req.body;
  15.  
  16.     return User.find({ username })
  17.         .count()
  18.         .then(count => {
  19.             if (count > 0) {
  20.                 return Promise.reject({
  21.                     code: 422,
  22.                     reason: 'ValidationError',
  23.                     message: 'Username already taken',
  24.                     location: 'username'
  25.                 });
  26.             }
  27.         })
  28.         .then(() => Question.find())
  29.         .then(questions => {
  30.             let hash = User.hashPassword(password);
  31.             let userQuestions = questions.map((question, index) => {
  32.                 return {
  33.                     question: question.question,
  34.                     answer: question.answer,
  35.                     next: index === questions.length - 1 ? null : index + 1,
  36.                     mValue: 1,
  37.                     numCorrect: 0,
  38.                     numAttempts: 0
  39.                 }
  40.             });
  41.  
  42.             console.log(userQuestions);
  43.  
  44.             return User.create({
  45.                 questions: userQuestions,
  46.                 firstName,
  47.                 lastName,
  48.                 username,
  49.                 password: hash
  50.             });
  51.         })
  52.         .then(user => res.status(201).json(user))
  53.         .catch(err => {
  54.             if (err.reason === 'ValidationError') {
  55.                 return res.status(err.code).json(err);
  56.             }
  57.             console.log(err);
  58.             res.status(500).json({ code: 500, message: err });
  59.         });
  60. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement