curupiras
Version:
Curupiras é um template back-end que utiliza Express e TypeScript
58 lines (41 loc) • 1.84 kB
text/typescript
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})
}
}