From 4c14d2e87d0c24f735142c2c6493dde94e562fc3 Mon Sep 17 00:00:00 2001 From: Lucas Boaventura Date: Sun, 19 Sep 2021 18:34:58 -0300 Subject: [PATCH] (#8) Adiciona tipagens no orderCntroller e nova forma de iterar nod fields --- src/controllers/orderController.ts | 117 +++++++++++++++++------------ 1 file changed, 71 insertions(+), 46 deletions(-) diff --git a/src/controllers/orderController.ts b/src/controllers/orderController.ts index 55fa176..b192ef7 100644 --- a/src/controllers/orderController.ts +++ b/src/controllers/orderController.ts @@ -1,100 +1,125 @@ +import { Request, Response } from "express"; import database from "../db"; -const create = async (request, response) => { +const create = async ( + request: Request, + response: Response +): Promise => { try { - const fieldsToValidate = ['status', 'idTable', 'idClient', 'nameClient']; - for (let field of fieldsToValidate) { + const fieldsToValidate = ["status", "idTable", "idClient", "nameClient"]; + + fieldsToValidate.forEach((field: string): Response => { if (!request.body.order[field]) { return response.status(400).json({ success: false, - message: `O campo ${field} é obrigatório` + message: `O campo ${field} é obrigatório.`, }); } - } + return null; + }); + return response.json({ success: true, - order: await database.order.create(request.body.order) + order: await database.order.create(request.body.order), }); } catch (error) { - console.log('ERROR ---> ', error); + console.log("ERROR ---> ", error); return response.status(500).json({ success: false, - message: 'Ocorreu um erro ao realizar a operação, tente novamente mais tarde.', - error: error.toString() + message: + "Ocorreu um erro ao realizar a operação, tente novamente mais tarde.", + error: error.toString(), }); } -} +}; -const getAll = async (request, response) => { +const getAll = async ( + request: Request, + response: Response +): Promise => { try { - let filters = {} - if (request.query.category) - filters.category = request.query.category + const filters = {}; + if (request.query.category) filters.category = request.query.category; return response.json({ success: true, orders: await database.order.findAll({ where: { - ...filters - } - }) + ...filters, + }, + }), }); } catch (error) { - console.log('ERROR ---> ', error); + console.log("ERROR ---> ", error); return response.status(500).json({ success: false, - message: 'Ocorreu um erro ao realizar a operação, tente novamente mais tarde.', - error: error.toString() - }) + message: + "Ocorreu um erro ao realizar a operação, tente novamente mais tarde.", + error: error.toString(), + }); } -} +}; -const getOne = async (request, response) => { +const getOne = async ( + request: Request, + response: Response +): Promise => { try { return response.json({ success: true, - order: await database.order.findByPk(request.params.id) + order: await database.order.findByPk(request.params.id), }); } catch (error) { - console.log('ERROR ---> ', error); + console.log("ERROR ---> ", error); return response.status(500).json({ success: false, - message: 'Ocorreu um erro ao realizar a operação, tente novamente mais tarde.', - error: error.toString() - }) + message: + "Ocorreu um erro ao realizar a operação, tente novamente mais tarde.", + error: error.toString(), + }); } -} +}; -const edit = async (request, response) => { +const edit = async ( + request: Request, + response: Response +): Promise => { try { - await database.order.update(request.body.order, { where: { idOrder: request.params.id } }) + await database.order.update(request.body.order, { + where: { idOrder: request.params.id }, + }); return response.json({ - success: true + success: true, }); } catch (error) { - console.log('ERROR ---> ', error); + console.log("ERROR ---> ", error); return response.status(500).json({ success: false, - message: 'Ocorreu um erro ao realizar a operação, tente novamente mais tarde.', - error: error.toString() - }) + message: + "Ocorreu um erro ao realizar a operação, tente novamente mais tarde.", + error: error.toString(), + }); } -} +}; -const destroy = async (request, response) => { +const destroy = async ( + request: Request, + response: Response +): Promise => { try { - await database.order.destroy({ where: { idOrder: request.params.id } }) + await database.order.destroy({ where: { idOrder: request.params.id } }); return response.json({ - success: true + success: true, }); } catch (error) { - console.log('ERROR ---> ', error); + console.log("ERROR ---> ", error); return response.status(500).json({ success: false, - message: 'Ocorreu um erro ao realizar a operação, tente novamente mais tarde.', - error: error.toString() - }) + message: + "Ocorreu um erro ao realizar a operação, tente novamente mais tarde.", + error: error.toString(), + }); } -} +}; -export default { create, getAll, getOne, edit, destroy } \ No newline at end of file +export default { create, getAll, getOne, edit, destroy };