UNPKG

typescript-express-starter

Version:
45 lines (37 loc) 1.47 kB
import { NextFunction, Request, Response } from 'express'; import { Container } from 'typedi'; import { RequestWithUser } from '@interfaces/auth.interface'; import { User } from '@interfaces/users.interface'; import { AuthService } from '@services/auth.service'; export class AuthController { public auth = Container.get(AuthService); public signUp = async (req: Request, res: Response, next: NextFunction): Promise<void> => { try { const userData: User = req.body; const signUpUserData: User = await this.auth.signup(userData); res.status(201).json({ data: signUpUserData, message: 'signup' }); } catch (error) { next(error); } }; public logIn = async (req: Request, res: Response, next: NextFunction): Promise<void> => { try { const userData: User = req.body; const { cookie, findUser } = await this.auth.login(userData); res.setHeader('Set-Cookie', [cookie]); res.status(200).json({ data: findUser, message: 'login' }); } catch (error) { next(error); } }; public logOut = async (req: RequestWithUser, res: Response, next: NextFunction): Promise<void> => { try { const userData: User = req.user; const logOutUserData: User = await this.auth.logout(userData); res.setHeader('Set-Cookie', ['Authorization=; Max-age=0']); res.status(200).json({ data: logOutUserData, message: 'logout' }); } catch (error) { next(error); } }; }