diff --git a/controllers/CategoryController.js b/controllers/CategoryController.js index f8c94a3..1ed7e51 100644 --- a/controllers/CategoryController.js +++ b/controllers/CategoryController.js @@ -1,14 +1,21 @@ -const CategoryService = require('../services/categoryService'); +const CategoryService = require('../services/CategoryService'); class CategoryController { + handleGetCategory(request, response){ + const service = new CategoryService(); + service.get((res) => { + return response.json(res); + }) + } + handleCreateCategory(request, response) { const service = new CategoryService(); - const body = request.body; + const {body} = request; - service.create(response, body).then(result => { - response.send(result); + service.create(body, (res) => { + return response.json(res) }); } diff --git a/controllers/MemberController.js b/controllers/MemberController.js index 2aa21ab..2cb2caa 100644 --- a/controllers/MemberController.js +++ b/controllers/MemberController.js @@ -1,23 +1,22 @@ -const MemberService = require('../services/memberService'); +const MemberService = require('../services/MemberService'); class MemberController { handleGetMember(request, response) { const service = new MemberService(); - service.getMember((res) => { + service.get((res) => { return response.json(res) - }) + }) } - handleCreateMember(request, response) { - - const service = new MemberService(); + handleCreateMember(request, response) { + const service = new Tourada(); const body = request.body; - service.create(body, (res) => { return response.json(res) }) } + } module.exports = MemberController; \ No newline at end of file diff --git a/controllers/PointController.js b/controllers/PointController.js new file mode 100644 index 0000000..f1474f6 --- /dev/null +++ b/controllers/PointController.js @@ -0,0 +1,12 @@ +const PointService = require('../services/PointService'); + +class PointController { + handleGetCards(request, response) { + const service = new PointService(); + service.getCards((res) => { + return response.json(res) + }) + } +} + +module.exports = PointController; diff --git a/controllers/SquadController.js b/controllers/SquadController.js new file mode 100644 index 0000000..05c7077 --- /dev/null +++ b/controllers/SquadController.js @@ -0,0 +1,17 @@ +const SquadService = require('../services/SquadService'); + +class SquadController { + + handleCreateSquad(request, response) { + + const service = new SquadService(); + const {body} = request; + + service.create(body, (res) => { + return response.json(res) + }); + + } +} + +module.exports = SquadController; diff --git a/index.js b/index.js index 0129f92..95f6e01 100644 --- a/index.js +++ b/index.js @@ -10,6 +10,11 @@ try { app.use(router); app.use(express.json()); + app.use(function(req, res, next) { + res.header("Access-Control-Allow-Origin", "*"); + res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); + next(); + }); app.listen('3001', () => { console.log('Servidor rodando na porta 3001') }) diff --git a/routes.js b/routes.js index 85b0611..89f79b3 100644 --- a/routes.js +++ b/routes.js @@ -10,6 +10,8 @@ const ExampleMemberNameController = require('./controllers/Example/ExampleMember const CategoryController = require('./controllers/CategoryController'); const RuleController = require('./controllers/RuleController'); const MemberController = require('./controllers/MemberController'); +const PointController = require('./controllers/PointController'); +const SquadController = require('./controllers/SquadController'); const origin = 'localhost:3000' const allowCors = cors({origin}) @@ -23,7 +25,7 @@ router.get("/membersName", new ExampleMemberNameController().handleGetMemberName router.get("/rules", allowCors, new RuleController().handleGetRule); -router.get("/members", allowCors, new MemberController().handleGetMember); +router.get("/members", cors({origin: 'http://localhost:3000'}), new MemberController().handleGetMember); router.post("/membersName/create", allowCors, jsonParser, new ExampleMemberNameController().handleCreateMemberName); @@ -33,4 +35,8 @@ router.post("/members/create", allowCors, jsonParser, new MemberController().han router.post("/rules/create", allowCors, jsonParser, new RuleController().handleCreateRule); +router.get("/points", cors({origin: 'http://localhost:3000'}), jsonParser, new PointController().handleGetCards); + +router.post("/squad/create", jsonParser, new SquadController().handleCreateSquad); + module.exports = router; \ No newline at end of file diff --git a/services/CategoryService.js b/services/CategoryService.js index c7180e4..87b1912 100644 --- a/services/CategoryService.js +++ b/services/CategoryService.js @@ -2,7 +2,7 @@ const connection = require("../infrastructure/connection"); class CategoryService { - async create(res, body) { + async create(body, res){ const sql = "INSERT INTO categories (name, description, enterprises_id) VALUES (?,?,?)"; @@ -22,6 +22,18 @@ class CategoryService { } ); } + + async get(res){ + const sql = 'SELECT * FROM categories'; + await connection.query(sql, (err, results) => { + if (err) { + return err; + } + setTimeout(() => { + return res(results); + }); + }); + } } module.exports = CategoryService; diff --git a/services/Example/ExampleMemberNameService.js b/services/Example/ExampleMemberNameService.js index 7ec59a2..f003dd8 100644 --- a/services/Example/ExampleMemberNameService.js +++ b/services/Example/ExampleMemberNameService.js @@ -2,7 +2,7 @@ const connection = require('../../infrastructure/connection'); // criação de classe para ser exportada -class ExampleMemberNameService { +class ExampleMemberNameService { // criação da função a ser utilizada no controller // sempre passar o res como parâmetro async getMemberName(res) { diff --git a/services/MemberService.js b/services/MemberService.js index 056983f..6af038a 100644 --- a/services/MemberService.js +++ b/services/MemberService.js @@ -1,7 +1,7 @@ const connection = require('../infrastructure/connection'); class MemberService { - async getMember(res) { + async get(res) { const sql = 'SELECT * FROM members'; await connection.query(sql, (err, results) => { if (err) { @@ -24,7 +24,7 @@ class MemberService { return res(results); }); }); - } + } } module.exports = MemberService; \ No newline at end of file diff --git a/services/PointService.js b/services/PointService.js new file mode 100644 index 0000000..e0695cf --- /dev/null +++ b/services/PointService.js @@ -0,0 +1,37 @@ +const connection = require('../infrastructure/connection'); + +class PointService { + async getCards(res) { + let cards = []; + const sqlScores = 'select multiplier_value, rules_id from scores'; + const sqlRules = 'select id, point, optional_point from rules'; + await connection.query(sqlScores, async (err, resultScores) => { + if (err) { + return err; + } + await connection.query(sqlRules, (err, resultRules) => { + if (err) { + return err; + } + let expected = 0, total = 0, percentage = 0; + resultScores.map((score) => { + resultRules.map((rule) => { + if (score.rules_id === rule.id) { + total = total + (score.multiplier_value * rule.point) + if (rule.optional_point === 0) { + expected = expected + (score.multiplier_value * rule.point) + } + } + }) + }) + percentage = parseInt((total/expected)*100); + cards = [expected, total, percentage]; + }); + setTimeout(() => { + return res(cards); + }); + }); + } +} + +module.exports = PointService; \ No newline at end of file diff --git a/services/SquadService.js b/services/SquadService.js new file mode 100644 index 0000000..42ca57d --- /dev/null +++ b/services/SquadService.js @@ -0,0 +1,27 @@ +const connection = require("../infrastructure/connection"); + +class SquadService { + + async create(body, res){ + const sql = + "INSERT INTO teams (name, enterprises_id) VALUES (?,?)"; + + const {name, enterprises_id} = body; + + await connection.query( + sql, + [name, enterprises_id], + (err, results) => { + if (err) { + return err; + } + + setTimeout(() => { + return res(results); + }); + } + ); + } +} + +module.exports = SquadService;