WebService-Boilerplate/modules/Auth/AuthController.js

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()