Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- router.post('/', (req, res, next) => {
- const requiredFields = ['username', 'password', 'firstName', 'lastName'];
- const missingField = requiredFields.find(field => !(field in req.body));
- if (missingField) {
- return res.status(422).json({
- code: 422,
- reason: 'ValidationError',
- message: 'Missing field',
- location: missingField
- });
- }
- let { username, password, firstName, lastName } = req.body;
- return User.find({ username })
- .count()
- .then(count => {
- if (count > 0) {
- return Promise.reject({
- code: 422,
- reason: 'ValidationError',
- message: 'Username already taken',
- location: 'username'
- });
- }
- })
- .then(() => Question.find())
- .then(questions => {
- let hash = User.hashPassword(password);
- let userQuestions = questions.map((question, index) => {
- return {
- question: question.question,
- answer: question.answer,
- next: index === questions.length - 1 ? null : index + 1,
- mValue: 1,
- numCorrect: 0,
- numAttempts: 0
- }
- });
- console.log(userQuestions);
- return User.create({
- questions: userQuestions,
- firstName,
- lastName,
- username,
- password: hash
- });
- })
- .then(user => res.status(201).json(user))
- .catch(err => {
- if (err.reason === 'ValidationError') {
- return res.status(err.code).json(err);
- }
- console.log(err);
- res.status(500).json({ code: 500, message: err });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement