Advertisement
Guest User

Untitled

a guest
Jan 28th, 2017
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // our packages
  2. import {User} from '../db';
  3. import {hash, asyncRequest} from '../util';
  4.  
  5. export default (app) => {
  6.   app.post('/api/register', asyncRequest(async(req, res) => {
  7.     // get user input
  8.     const {login, password, passwordRepeat} = req.body;
  9.     let status;
  10.  
  11.     if (password !== passwordRepeat) {
  12.       res.status(400).send({error: 'Passwords do not match!'});
  13.       return;
  14.     }
  15.  
  16.     // hash password
  17.     const hashedPassword = hash(password);
  18.  
  19.     // check if login is already taken
  20.     await User.findOne({username: login}, (err, doc) => {
  21.       if (err) {
  22.         throw err;
  23.       }
  24.       if (doc === null) {
  25.         // TODO
  26.       } else {
  27.         status = {error: 'User already exists!'};
  28.       }
  29.     });
  30.     if (status) {
  31.       res.status(403).send(status);
  32.       return;
  33.     }
  34.  
  35.     // save new user
  36.     const user = new User({
  37.       username: login,
  38.       password: hashedPassword,
  39.     });
  40.     await user.save((err) => {
  41.       if (err) throw err;
  42.     });
  43.  
  44.     res.sendStatus(201);
  45.   }));
  46. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement