import { Response, Request } from "express"; import { refreshToken as _refreshToken, finishMailVerify as _finishMailVerify, register as _register, logout as _logout, login as _login, me as _me } from "../actions/auth"; import { AuthRequest } from "../middlewares/authMiddleware"; export const register = async (req: Request, res: Response): Promise => { try { const { phoneNumber, companyName, firstName, lastName, password, mail } = req.body; const result = await _register({ phoneNumber, companyName, firstName, lastName, password, mail }); res.status(result.code) .json({ message: result.message, code: result.code }); } catch (error) { console.error("Register error:", error); res.status(500) .json({ message: "internal-server-error", code: 500, }); } }; export const login = async (req: Request, res: Response): Promise => { try { const { password, mail } = req.body; const result = await _login({ password, mail }); res.status(result.code).json({ message: result.message, code: result.code, ...(result.payload && { payload: result.payload }), }); } catch (error) { console.error("Login error:", error); res.status(500) .json({ message: "Server error", code: 500, }); } }; export const logout = async (req: AuthRequest, res: Response): Promise => { try { const context = req.context; if (!context) { res.status(401).json({ message: "Unauthorized: Missing context", code: 401 }); return; } const { userID, token } = context; if (!userID || !token) { res.status(401).json({ message: "Unauthorized: Missing user information", code: 401 }); return; } const result = await _logout(userID, token); res.status(result.code).json({ message: result.message, code: result.code, }); } catch (error) { console.error("Logout controller error:", error); res.status(500).json({ message: "Server error", code: 500, }); } }; export const me = async (req: AuthRequest, res: Response): Promise => { try { const context = req.context; if (!context || !context.userID) { res.status(401).json({ message: "Unauthorized", code: 401 }); return; } const result = await _me(context.userID); res.status(result.code).json({ message: result.message, code: result.code, ...(result.payload && { payload: result.payload }) }); } catch (error) { res.status(500).json({ message: "Server error", code: 500 }); } }; export const refreshToken = async (req: Request, res: Response): Promise => { try { const { refreshToken } = req.body; const result = await _refreshToken(refreshToken); res.status(result.code) .json({ message: result.message, code: result.code, ...(result.payload && { payload: result.payload, }), }); } catch (error) { console.error("RefreshToken controller error:", error); res.status(500) .json({ message: "internal-server-error", code: 500, }); } }; export const finishMailVerify = async (req: Request, res: Response): Promise => { try { const { userID, code } = req.body; const result = await _finishMailVerify({ userID, code }); res.status(result.code).json({ message: result.message, code: result.code, }); } catch (error) { console.error("FinishMailVerify controller error:", error); res.status(500).json({ message: "internal-server-error", code: 500 }); } };