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
 | |
| };
 |