Advertisement
Guest User

Untitled

a guest
Aug 9th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  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. let userQuestions = [];
  16.  
  17. return User.find({username})
  18. .count()
  19. .then(count => {
  20. if (count > 0) {
  21. return Promise.reject({
  22. code: 422,
  23. reason: 'ValidationError',
  24. message: 'Username already taken',
  25. location: 'username'
  26. });
  27. }
  28. })
  29. .then(() => {
  30. Question.find()
  31. .then(questions => {
  32. questions.forEach((question, index) => {
  33. let q = {
  34. question: question.question,
  35. answer: question.answer,
  36. next: index === questions.length - 1 ? null : index + 1,
  37. mValue: 1,
  38. numCorrect: 0,
  39. numAttempts: 0
  40. };
  41. userQuestions.push(q);
  42. });
  43. })
  44. .catch(err => console.log(err));
  45. return User.hashPassword(password);
  46. })
  47. .then(hash => {
  48. console.log(userQuestions); // WHY IS THIS EMPTY?!?!?!?!
  49. return User.create({
  50. questions: userQuestions,
  51. firstName,
  52. lastName,
  53. username,
  54. password: hash
  55. });
  56. })
  57. .then(user => res.status(201).json(user))
  58. .catch(err => {
  59. if (err.reason === 'ValidationError') {
  60. return res.status(err.code).json(err);
  61. }
  62. console.log(err);
  63. res.status(500).json({ code: 500, message: err });
  64. });
  65. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement