56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const path = require("path");
 | 
						|
const userRepository = require(path.join(__dirname, "../user"));
 | 
						|
 | 
						|
function register(req, res, next) {
 | 
						|
  const { username, password } = req.body;
 | 
						|
 | 
						|
  return userRepository
 | 
						|
    .register(username, password)
 | 
						|
    .then(user => userRepository.login(req, user))
 | 
						|
    .then(_ =>
 | 
						|
      res.send({
 | 
						|
        messsage: `Bruker registrert. Velkommen ${username}`,
 | 
						|
        success: true
 | 
						|
      })
 | 
						|
    )
 | 
						|
    .catch(error => {
 | 
						|
      const { statusCode, message } = error;
 | 
						|
 | 
						|
      return res.status(statusCode || 500).send({
 | 
						|
        message: message || "Unable to sign in with given username and passowrd",
 | 
						|
        success: false
 | 
						|
      });
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
const login = (req, res, next) => {
 | 
						|
  return userRepository
 | 
						|
    .authenticate(req)
 | 
						|
    .then(user => userRepository.login(req, user))
 | 
						|
    .then(user => {
 | 
						|
      res.send({
 | 
						|
        message: `Velkommen ${user.username}`,
 | 
						|
        success: true
 | 
						|
      });
 | 
						|
    })
 | 
						|
    .catch(error => {
 | 
						|
      const { statusCode, message } = error;
 | 
						|
 | 
						|
      return res.status(statusCode || 500).send({
 | 
						|
        message: message || "Unable to sign in with given username and passowrd",
 | 
						|
        success: false
 | 
						|
      });
 | 
						|
    });
 | 
						|
};
 | 
						|
 | 
						|
const logout = (req, res) => {
 | 
						|
  req.logout();
 | 
						|
  res.redirect("/");
 | 
						|
};
 | 
						|
 | 
						|
module.exports = {
 | 
						|
  register,
 | 
						|
  login,
 | 
						|
  logout
 | 
						|
};
 |