From 600f427625e365a8e3113cc873da451c4b532662 Mon Sep 17 00:00:00 2001 From: ConanGoodwin Date: Tue, 1 Nov 2022 14:22:55 -0300 Subject: [PATCH 1/7] add pasta dia 21.4 --- Md03_Dev_Back_end/Bloco21/21.4/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Md03_Dev_Back_end/Bloco21/21.4/README.md diff --git a/Md03_Dev_Back_end/Bloco21/21.4/README.md b/Md03_Dev_Back_end/Bloco21/21.4/README.md new file mode 100644 index 00000000..e69de29b From 1d2efce7b00ae6ac3b360a46f2e9ccc1ccd041bd Mon Sep 17 00:00:00 2001 From: ConanGoodwin Date: Tue, 1 Nov 2022 14:37:59 -0300 Subject: [PATCH 2/7] add soccer dia 21.4 --- .../Bloco21/21.4/soccer-team-manager/.eslintignore | 3 +++ .../Bloco21/21.4/soccer-team-manager/.eslintrc.json | 10 ++++++++++ 2 files changed, 13 insertions(+) create mode 100644 Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/.eslintignore create mode 100644 Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/.eslintrc.json diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/.eslintignore b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/.eslintignore new file mode 100644 index 00000000..8d9740ad --- /dev/null +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/.eslintignore @@ -0,0 +1,3 @@ +// .eslintignore + +node_modules \ No newline at end of file diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/.eslintrc.json b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/.eslintrc.json new file mode 100644 index 00000000..9cf09375 --- /dev/null +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/.eslintrc.json @@ -0,0 +1,10 @@ +// .eslintrc.json +{ + "env": { + "es2020": true + }, + "extends": "trybe-backend", + "rules": { + "sonarjs/no-duplicate-string": ["error", 5] + } +} \ No newline at end of file From 34ec1df6bcbf8a170aeea2d7a140c0605ddd9795 Mon Sep 17 00:00:00 2001 From: ConanGoodwin Date: Tue, 1 Nov 2022 14:38:40 -0300 Subject: [PATCH 3/7] add soccer dia 21.4 --- .../21.4/soccer-team-manager/src/app.js | 83 +++++++++++++++++++ .../21.4/soccer-team-manager/src/index.js | 0 .../21.4/soccer-team-manager/src/server.js | 4 + 3 files changed, 87 insertions(+) create mode 100644 Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js create mode 100644 Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/index.js create mode 100644 Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/server.js diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js new file mode 100644 index 00000000..7dc19301 --- /dev/null +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js @@ -0,0 +1,83 @@ +// src/app.js +const OK = 200; +// const INTERNAL_SERVER_ERROR = 500; +// const NOT_FOUND = 404; +const express = require('express'); + +const app = express(); + +app.use(express.json()); + +const teams = [ + + { + + id: 1, + + name: 'São Paulo Futebol Clube', + + initials: 'SPF', + + }, + + { + + id: 2, + + name: 'Clube Atlético Mineiro', + + initials: 'CAM', + + }, + +]; + +app.get('/', (req, res) => res.status(OK).json({ message: 'Olá Mundo!' })); +// app.get('/', (req, res) => res.status(200).send('

Olá Mundo!

')); + +app.get('/teams', (req, res) => res.status(200).json({ teams })); +app.get('/teams/:id', (req, res) => { + const { id } = req.params; + const teamEsp = teams.find((team) => team.id === Number(id)); + + res.status(200).json({ teamEsp }); +}); + +app.post('/teams', (req, res) => { + const newTeam = { ...req.body }; + + teams.push(newTeam); + + res.status(201).json({ team: newTeam }); +}); + +app.put('/teams/:id', (req, res) => { + const { id } = req.params; + const { name, initials } = req.body; + const updateTeam = teams.find((team) => team.id === Number(id)); + + if (!updateTeam) { + res.status(404).json({ message: 'Team not found' }); + } + + updateTeam.name = name; + + updateTeam.initials = initials; + + res.status(200).json({ updateTeam }); +}); + +app.delete('/teams/:id', (req, res) => { + const { id } = req.params; + const arrayPosition = teams.findIndex((team) => team.id === Number(id)); + + teams.splice(arrayPosition, 1); + + res.status(200).end(); +}); + +// GET / HTTP/1.1 +// Host: developer.mozilla.org +// Accept: text/html + +module.exports = app; \ No newline at end of file diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/index.js b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/index.js new file mode 100644 index 00000000..e69de29b diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/server.js b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/server.js new file mode 100644 index 00000000..3dba156f --- /dev/null +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/server.js @@ -0,0 +1,4 @@ +// src/server.js +const app = require('./app'); + +app.listen(3001, () => console.log('server running on port 3001')); \ No newline at end of file From e3fb10cd8d92ed3b21a56e4acd0edefa32527015 Mon Sep 17 00:00:00 2001 From: ConanGoodwin Date: Tue, 1 Nov 2022 15:55:05 -0300 Subject: [PATCH 4/7] =?UTF-8?q?exercicio=20de=20fixa=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../21.4/soccer-team-manager/src/app.js | 76 +++++++------------ .../src/middlewares/validateTeam.js | 33 ++++++++ .../21.4/soccer-team-manager/src/server.js | 2 +- 3 files changed, 61 insertions(+), 50 deletions(-) create mode 100644 Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/middlewares/validateTeam.js diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js index 7dc19301..1eed7cab 100644 --- a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js @@ -3,79 +3,57 @@ const OK = 200; // const INTERNAL_SERVER_ERROR = 500; // const NOT_FOUND = 404; const express = require('express'); +const teams = require('./database/teams'); +const { validateId, existingId, validateTeam } = require('./middlewares/validateTeam'); const app = express(); app.use(express.json()); -const teams = [ +let nextId = 3; - { - - id: 1, - - name: 'São Paulo Futebol Clube', - - initials: 'SPF', - - }, - - { - - id: 2, - - name: 'Clube Atlético Mineiro', - - initials: 'CAM', - - }, - -]; - -app.get('/', (req, res) => res.status(OK).json({ message: 'Olá Mundo!' })); -// app.get('/', (req, res) => res.status(200).send('

Olá Mundo!

')); +app.get('/', (_req, res) => res.status(OK).json({ message: 'Olá Mundo!' })); app.get('/teams', (req, res) => res.status(200).json({ teams })); -app.get('/teams/:id', (req, res) => { + +app.get('/teams/:id', validateId, existingId, (req, res) => { const { id } = req.params; const teamEsp = teams.find((team) => team.id === Number(id)); - res.status(200).json({ teamEsp }); + res.status(200).json({ teamEsp }); }); -app.post('/teams', (req, res) => { - const newTeam = { ...req.body }; +// Arranja os middlewares para chamar validateTeam primeiro +app.post('/teams', validateTeam, (req, res) => { + const team = { id: nextId, ...req.body }; - teams.push(newTeam); - - res.status(201).json({ team: newTeam }); + teams.push(team); + nextId += 1; + res.status(201).json(team); }); -app.put('/teams/:id', (req, res) => { - const { id } = req.params; - const { name, initials } = req.body; - const updateTeam = teams.find((team) => team.id === Number(id)); +app.put('/teams/:id', validateTeam, validateId, existingId, (req, res) => { + const id = Number(req.params.id); + const team = teams.find(t => t.id === id); - if (!updateTeam) { - res.status(404).json({ message: 'Team not found' }); - } + const index = teams.indexOf(team); + const updated = { id, ...req.body }; - updateTeam.name = name; - - updateTeam.initials = initials; - - res.status(200).json({ updateTeam }); + teams.splice(index, 1, updated); + res.status(201).json(updated); }); -app.delete('/teams/:id', (req, res) => { - const { id } = req.params; - const arrayPosition = teams.findIndex((team) => team.id === Number(id)); - teams.splice(arrayPosition, 1); +app.delete('/teams/:id', validateId, existingId, (req, res) => { + const id = Number(req.params.id); + const team = teams.find(t => t.id === id); + const index = teams.indexOf(team); - res.status(200).end(); + teams.splice(index, 1); + res.sendStatus(204); }); + // GET / HTTP/1.1 // Host: developer.mozilla.org // Accept: text/html diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/middlewares/validateTeam.js b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/middlewares/validateTeam.js new file mode 100644 index 00000000..0bab55b3 --- /dev/null +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/middlewares/validateTeam.js @@ -0,0 +1,33 @@ +const teams = require("../database/teams"); + +const validateTeam = (req, res, next) => { + const requiredProperties = ['nome', 'sigla']; + + if (requiredProperties.every((property) => property in req.body)) { + next(); // Chama o próximo middleware + } else { + res.sendStatus(400); // Ou já responde avisando que deu errado + } +}; + +const validateId = (req, res, next) => { + const id = Number(req.params.id); + + if (Number.isNaN(id)) return res.status(400).send({ message: 'id não numerico' }); + + return next(); +} + +const existingId = (req, res, next) => { + const idParam = Number(req.params.id); + + if (teams.some(({ id }) => id === idParam)) return next(); + + return res.status(404).send({ message: 'id não encontrado' }); +} + +module.exports = { + validateTeam, + validateId, + existingId +}; \ No newline at end of file diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/server.js b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/server.js index 3dba156f..389396a0 100644 --- a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/server.js +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/server.js @@ -1,4 +1,4 @@ // src/server.js const app = require('./app'); -app.listen(3001, () => console.log('server running on port 3001')); \ No newline at end of file +app.listen(3002, () => console.log('server running on port 3002')); \ No newline at end of file From b2366efe46d38825682e075ec1fbdf0609778b63 Mon Sep 17 00:00:00 2001 From: ConanGoodwin Date: Tue, 1 Nov 2022 17:16:31 -0300 Subject: [PATCH 5/7] pausa pra aula --- .../21.4/soccer-team-manager/src/database/teams.js | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/database/teams.js diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/database/teams.js b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/database/teams.js new file mode 100644 index 00000000..7c65bf23 --- /dev/null +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/database/teams.js @@ -0,0 +1,9 @@ +const teams = [ + + { id: 1, nome: 'São Paulo Futebol Clube', sigla: 'SPF' }, + + { id: 2, nome: 'Sociedade Esportiva Palmeiras', sigla: 'PAL' }, + +]; + +module.exports = teams; \ No newline at end of file From 52bd2b10a43eff5f5a7611cb13f939459e5ec6f4 Mon Sep 17 00:00:00 2001 From: ConanGoodwin Date: Tue, 1 Nov 2022 18:09:44 -0300 Subject: [PATCH 6/7] add pasta rotas --- .../21.4/soccer-team-manager/src/app.js | 46 +---------------- .../src/middlewares/validateTeam.js | 4 +- .../soccer-team-manager/src/routes/rotas.js | 51 +++++++++++++++++++ 3 files changed, 55 insertions(+), 46 deletions(-) create mode 100644 Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/routes/rotas.js diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js index 1eed7cab..a3a3959f 100644 --- a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js @@ -3,55 +3,13 @@ const OK = 200; // const INTERNAL_SERVER_ERROR = 500; // const NOT_FOUND = 404; const express = require('express'); -const teams = require('./database/teams'); -const { validateId, existingId, validateTeam } = require('./middlewares/validateTeam'); +const route = require('./routes/rotas'); const app = express(); app.use(express.json()); +app.use(route); -let nextId = 3; - -app.get('/', (_req, res) => res.status(OK).json({ message: 'Olá Mundo!' })); - -app.get('/teams', (req, res) => res.status(200).json({ teams })); - -app.get('/teams/:id', validateId, existingId, (req, res) => { - const { id } = req.params; - const teamEsp = teams.find((team) => team.id === Number(id)); - - res.status(200).json({ teamEsp }); -}); - -// Arranja os middlewares para chamar validateTeam primeiro -app.post('/teams', validateTeam, (req, res) => { - const team = { id: nextId, ...req.body }; - - teams.push(team); - nextId += 1; - res.status(201).json(team); -}); - -app.put('/teams/:id', validateTeam, validateId, existingId, (req, res) => { - const id = Number(req.params.id); - const team = teams.find(t => t.id === id); - - const index = teams.indexOf(team); - const updated = { id, ...req.body }; - - teams.splice(index, 1, updated); - res.status(201).json(updated); -}); - - -app.delete('/teams/:id', validateId, existingId, (req, res) => { - const id = Number(req.params.id); - const team = teams.find(t => t.id === id); - const index = teams.indexOf(team); - - teams.splice(index, 1); - res.sendStatus(204); -}); // GET / HTTP/1.1 diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/middlewares/validateTeam.js b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/middlewares/validateTeam.js index 0bab55b3..96ba0fb6 100644 --- a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/middlewares/validateTeam.js +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/middlewares/validateTeam.js @@ -13,7 +13,7 @@ const validateTeam = (req, res, next) => { const validateId = (req, res, next) => { const id = Number(req.params.id); - if (Number.isNaN(id)) return res.status(400).send({ message: 'id não numerico' }); + if (Number.isNaN(id)) res.status(400).send({ message: 'id não numerico' }); return next(); } @@ -21,7 +21,7 @@ const validateId = (req, res, next) => { const existingId = (req, res, next) => { const idParam = Number(req.params.id); - if (teams.some(({ id }) => id === idParam)) return next(); + if (teams.some(({ id }) => id === idParam)) next(); return res.status(404).send({ message: 'id não encontrado' }); } diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/routes/rotas.js b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/routes/rotas.js new file mode 100644 index 00000000..d899b56a --- /dev/null +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/routes/rotas.js @@ -0,0 +1,51 @@ +const express = require('express'); +const teams = require('../database/teams'); +const { validateId, existingId, validateTeam } = require('../middlewares/validateTeam'); + +const route = express.Router(); + +let nextId = 3; + +route.get('/', (_req, res) => res.status(200).json({ message: 'Olá Mundo!' })); + +route.get('/teams', (req, res) => res.status(200).json({ teams })); + +route.get('/teams/:id', validateId, existingId, (req, res) => { + const { id } = req.params; + const teamEsp = teams.find((team) => team.id === Number(id)); + + res.status(200).json({ teamEsp }); +}); + +// Arranja os middlewares para chamar validateTeam primeiro +route.post('/teams', validateTeam, (req, res) => { + const team = { id: nextId, ...req.body }; + + teams.push(team); + nextId += 1; + res.status(201).json(team); +}); + +route.put('/teams/:id', validateTeam, validateId, existingId, (req, res) => { + const id = Number(req.params.id); + const team = teams.find(t => t.id === id); + + const index = teams.indexOf(team); + const updated = { id, ...req.body }; + + teams.splice(index, 1, updated); + res.status(201).json(updated); +}); + + +route.delete('/teams/:id', validateId, existingId, (req, res) => { + const id = Number(req.params.id); + const team = teams.find(t => t.id === id); + const index = teams.indexOf(team); + + teams.splice(index, 1); + res.sendStatus(204); +}); + + +module.exports = route; \ No newline at end of file From f833a7b4c2098ea99c5bd830b4b9112c0dec5015 Mon Sep 17 00:00:00 2001 From: ConanGoodwin Date: Thu, 3 Nov 2022 14:22:29 -0300 Subject: [PATCH 7/7] pausa --- .../Bloco21/21.4/soccer-team-manager/src/app.js | 3 --- .../soccer-team-manager/src/middlewares/validateTeam.js | 3 ++- .../Bloco21/21.4/soccer-team-manager/src/routes/rotas.js | 9 ++++++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js index a3a3959f..2bdaadca 100644 --- a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/app.js @@ -1,7 +1,4 @@ // src/app.js -const OK = 200; -// const INTERNAL_SERVER_ERROR = 500; -// const NOT_FOUND = 404; const express = require('express'); const route = require('./routes/rotas'); diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/middlewares/validateTeam.js b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/middlewares/validateTeam.js index 96ba0fb6..a612f3d3 100644 --- a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/middlewares/validateTeam.js +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/middlewares/validateTeam.js @@ -1,4 +1,5 @@ const teams = require("../database/teams"); +const NOT_FOUND = 404; const validateTeam = (req, res, next) => { const requiredProperties = ['nome', 'sigla']; @@ -23,7 +24,7 @@ const existingId = (req, res, next) => { if (teams.some(({ id }) => id === idParam)) next(); - return res.status(404).send({ message: 'id não encontrado' }); + return res.status(NOT_FOUND).send({ message: 'id não encontrado' }); } module.exports = { diff --git a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/routes/rotas.js b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/routes/rotas.js index d899b56a..aac72130 100644 --- a/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/routes/rotas.js +++ b/Md03_Dev_Back_end/Bloco21/21.4/soccer-team-manager/src/routes/rotas.js @@ -2,19 +2,22 @@ const express = require('express'); const teams = require('../database/teams'); const { validateId, existingId, validateTeam } = require('../middlewares/validateTeam'); +const OK = 200; +// const INTERNAL_SERVER_ERROR = 500; + const route = express.Router(); let nextId = 3; -route.get('/', (_req, res) => res.status(200).json({ message: 'Olá Mundo!' })); +route.get('/', (_req, res) => res.status(OK).json({ message: 'Olá Mundo!' })); -route.get('/teams', (req, res) => res.status(200).json({ teams })); +route.get('/teams', (req, res) => res.status(OK).json({ teams })); route.get('/teams/:id', validateId, existingId, (req, res) => { const { id } = req.params; const teamEsp = teams.find((team) => team.id === Number(id)); - res.status(200).json({ teamEsp }); + res.status(OK).json({ teamEsp }); }); // Arranja os middlewares para chamar validateTeam primeiro