UNPKG

curupiras

Version:

Curupiras é um template back-end que utiliza Express e TypeScript

58 lines (41 loc) 1.84 kB
import { Request, Response } from 'express'; import { container } from 'tsyringe'; import userService from '../services'; export default class UserController { async create(request: Request, response: Response): Promise<Response> { const { body } = request; const createUser = container.resolve(userService.create); const newUser = await createUser.execute(body); return response.status(201).json(newUser); } async update(request: Request, response: Response): Promise<Response> { const { body } = request; const { id } = request.params; const updateUser = container.resolve(userService.update); const updatedUser = await updateUser.execute({ id, body }); return response.status(200).json(updatedUser); } async list(_request: Request, response: Response): Promise<Response> { const listUser = container.resolve(userService.list); const usersList = await listUser.execute(); return response.status(200).json(usersList); } async remove(request: Request, response: Response): Promise<Response> { const { id } = request.params; const removeUser = container.resolve(userService.remove); await removeUser.execute(id); return response.status(204).json({}); } async find(request: Request, response: Response): Promise<Response> { const { id } = request.params; const findUser = container.resolve(userService.find); const foundUser = await findUser.execute(id); return response.status(200).json(foundUser); } async login(request: Request, response: Response): Promise<Response> { const { email, password } = request.body; const generateToken = container.resolve(userService.login); const token = await generateToken.execute({ email, password }); return response.status(200).json({message: token}) } }