Skip to content

Commit

Permalink
(#9) Cria employeeController
Browse files Browse the repository at this point in the history
Co-authored-by: Daniel Primo <danielprimo9@gmail.com>
  • Loading branch information
herickport and danieldagerom committed Sep 13, 2021
1 parent 3347eb4 commit 6ba0470
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 0 deletions.
92 changes: 92 additions & 0 deletions src/controllers/employeeController.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
import database from "../db";

const create = async (request, response) => {
try {
const fieldsToValidate = ['cpf', 'name', 'occupation']
for (let field of fieldsToValidate) {
if (!request.body.employee[field]) {
return response.status(400).json({
success: false,
message: `O campo ${field} é obrigatório.`
});
}
}
return response.json({
success: true,
employee: await database.employee.create(request.body.employee)
});
} catch (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()
});
}
}

const getAll = async (request, response) => {
try {
return response.json({
success: true,
employees: await database.employee.findAll()
});
} catch (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()
});
}
}

const getOne = async (request, response) => {
try {
return response.json({
success: true,
employee: await database.employee.findByPk(request.params.cpf)
});
} catch (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()
});
}
}

const edit = async (request, response) => {
try {
await database.employee.update(request.body.employee, { where: { cpf: request.params.cpf } })
return response.json({
success: true
});
} catch (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()
});
}
}

const destroy = async (request, response) => {
try {
await database.employee.destroy({ where: { cpf: request.params.cpf } })
return response.json({
success: true
});
} catch (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()
});
}
}

export default { create, getAll, getOne, edit, destroy }
18 changes: 18 additions & 0 deletions src/routes/employee.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { Router } from "express";

import clientController from '../controllers/employeeController';

const routes = Router();

routes.post("/", async (request, response) => await clientController.create(request, response));

routes.get("/", async (request, response) => await clientController.getAll(request, response));

routes.get("/:cpf", async (request, response) => await clientController.getOne(request, response));

routes.put("/:cpf", async (request, response) => await clientController.edit(request, response));

routes.delete("/:cpf", async (request, response) => await clientController.destroy(request, response));


export default routes;
4 changes: 4 additions & 0 deletions src/routes/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { Router } from "express";

import employeeRoutes from './employee';

const routes = Router();

routes.get("/", (request, response) => {
Expand All @@ -20,4 +22,6 @@ routes.get("/", (request, response) => {
});
});

routes.use('/employee', employeeRoutes);

export default routes;

0 comments on commit 6ba0470

Please sign in to comment.