import Controller from "../Controller"; import AuthService from "./AuthService"; class AuthController extends Controller { /** * @desc Login user * @param req * @param res * @returns {Promise} */ 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} */ 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} */ 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()