77 lines
1.6 KiB
JavaScript
77 lines
1.6 KiB
JavaScript
import Controller from "../Controller";
|
|
import AuthService from "./AuthService";
|
|
|
|
|
|
class AuthController extends Controller {
|
|
|
|
|
|
/**
|
|
* @desc Login user
|
|
* @param req
|
|
* @param res
|
|
* @returns {Promise<void>}
|
|
*/
|
|
|
|
async login(req, res) {
|
|
try {
|
|
await AuthService.login(req, res)
|
|
} catch (error) {
|
|
console.error('Internal server error', error);
|
|
res.status(500).json({message: 'Internal server error'});
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* @desc Get current user
|
|
* @param req
|
|
* @param res
|
|
* @returns {Promise<*>}
|
|
*/
|
|
|
|
async user(req, res) {
|
|
try {
|
|
return res.json(req.user);
|
|
} catch (error) {
|
|
console.error(error);
|
|
res.status(500).json({message: 'Internal server error'});
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* @desc Logout user
|
|
* @param req
|
|
* @param res
|
|
* @returns {Promise<void>}
|
|
*/
|
|
|
|
async logout(req, res) {
|
|
try {
|
|
await AuthService.logout(req, res)
|
|
} catch (error) {
|
|
console.error(error);
|
|
res.status(500).json({message: 'Internal server error'});
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* @desc Maintenance endpoint to generate password hash
|
|
* @param req
|
|
* @param res
|
|
* @returns {Promise<void>}
|
|
*/
|
|
async generatePasswordHash(req, res) {
|
|
try {
|
|
await AuthService.generatePasswordHash(req, res)
|
|
} catch (error) {
|
|
console.error('Internal server error', error);
|
|
res.status(500).json({message: 'Internal server error'});
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
export default new AuthController()
|