From eeabd78f7566c2d8de2ab1cb1be8b095387c659b Mon Sep 17 00:00:00 2001 From: AndreSantiago08 Date: Sat, 21 May 2022 01:06:30 -0500 Subject: [PATCH 1/4] Quitando del repositorio el archivo package.json y agregarlo a .gitignore --- .gitignore | 1 + package.json | 22 ---------------------- 2 files changed, 1 insertion(+), 22 deletions(-) delete mode 100644 package.json diff --git a/.gitignore b/.gitignore index 3c3629e6..82259fe7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ node_modules +package.json diff --git a/package.json b/package.json deleted file mode 100644 index 119436d2..00000000 --- a/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "fizzbuzz", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "node ./node_modules/.bin/jest", - "linter": "node ./node_modules/eslint/bin/eslint.js", - "linter-fix": "node ./node_modules/eslint/bin/eslint.js . --fix", - "server": "node ./lib/server.js" - }, - "keywords": [], - "author": "", - "license": "ISC", - "devDependencies": { - "eslint": "^8.14.0", - "jest": "^27.5.1" - }, - "dependencies": { - "express": "^4.17.3" - } -} From 1ef7f0f2c4816d535611189d2f1774dcbe92feaa Mon Sep 17 00:00:00 2001 From: AndreSantiago08 Date: Sat, 21 May 2022 01:16:29 -0500 Subject: [PATCH 2/4] =?UTF-8?q?Agregando=20el=20m=C3=A9todo=20getExplorers?= =?UTF-8?q?ByStack=20en=20la=20clase=20ExplorerService=20y=20agregando=20s?= =?UTF-8?q?u=20respectiva=20prueba?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 ++-- lib/services/ExplorerService.js | 4 ++++ test/services/ExplorerService.test.js | 9 +++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 82259fe7..d2cdc44d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -node_modules -package.json +node_modules +package.json diff --git a/lib/services/ExplorerService.js b/lib/services/ExplorerService.js index 9fef9574..133cedc8 100644 --- a/lib/services/ExplorerService.js +++ b/lib/services/ExplorerService.js @@ -16,6 +16,10 @@ class ExplorerService { return explorersUsernames; } + static getExplorerByStack(explorers, stack){ + const ExplorersByStack = explorers.filter((explorer) => explorer.stacks.includes(stack)); + return ExplorersByStack; + } } module.exports = ExplorerService; diff --git a/test/services/ExplorerService.test.js b/test/services/ExplorerService.test.js index 4313f192..287495bd 100644 --- a/test/services/ExplorerService.test.js +++ b/test/services/ExplorerService.test.js @@ -7,4 +7,13 @@ describe("Tests para ExplorerService", () => { expect(explorersInNode.length).toBe(1); }); + test("Requerimiento 4: Filtrar explorers por stack", () => { + const explorers = [ + {name: "Explorer1", stacks: ["elixir", "javascript"]}, + {name: "Explorer2", stacks: ["elixir"]}, + {name: "Explorer3", stacks: ["javascript"]} + ]; + const ExplorersByStack = ExplorerService.getExplorerByStack(explorers, "elixir"); + expect(ExplorersByStack.length).toBe(2); + }); }); From 7a7d6d74015bd4073d4c64a6956a08d0c589b9cf Mon Sep 17 00:00:00 2001 From: AndreSantiago08 Date: Sat, 21 May 2022 01:22:12 -0500 Subject: [PATCH 3/4] =?UTF-8?q?Agregando=20el=20m=C3=A9todo=20getExplorerB?= =?UTF-8?q?yStack=20=20del=20objeto=20ExplorerService=20y=20creando=20la?= =?UTF-8?q?=20prueba=20de=20ExplorerController?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/controllers/ExplorerController.js | 6 ++++++ test/controllers/ExplorerController.test.js | 8 ++++++++ 2 files changed, 14 insertions(+) create mode 100644 test/controllers/ExplorerController.test.js diff --git a/lib/controllers/ExplorerController.js b/lib/controllers/ExplorerController.js index 85590a6d..1664ae34 100644 --- a/lib/controllers/ExplorerController.js +++ b/lib/controllers/ExplorerController.js @@ -21,6 +21,12 @@ class ExplorerController{ const explorers = Reader.readJsonFile("explorers.json"); return ExplorerService.getAmountOfExplorersByMission(explorers, mission); } + + static getExplorersByStack(stack){ + const explorers = Reader.readJsonFile("./explorers.json"); + const explorersByStack = ExplorerService.getExplorerByStack(explorers, stack); + return explorersByStack; + } } module.exports = ExplorerController; diff --git a/test/controllers/ExplorerController.test.js b/test/controllers/ExplorerController.test.js new file mode 100644 index 00000000..ff5256f0 --- /dev/null +++ b/test/controllers/ExplorerController.test.js @@ -0,0 +1,8 @@ +const ExplorerController = require("./../../lib/controllers/ExplorerController"); + +describe("Pruebas de unidad de la clase ExplorerController", () => { + test("Requerimiento 4: Obtener lista de explorers que contengan el stack", () => { + const explorersByStack = ExplorerController.getExplorersByStack("javascript"); + expect(explorersByStack.length).toBe(11); + }); +}); \ No newline at end of file From 37bec734d4e8ed22f96f61fc58dadc55648bb376 Mon Sep 17 00:00:00 2001 From: AndreSantiago08 Date: Sat, 21 May 2022 01:27:18 -0500 Subject: [PATCH 4/4] Agregando endpoint que filtra los explorers que tengan un stack determinado --- lib/server.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/server.js b/lib/server.js index 9860b437..47740167 100644 --- a/lib/server.js +++ b/lib/server.js @@ -32,6 +32,13 @@ app.get("/v1/fizzbuzz/:score", (request, response) => { response.json({score: score, trick: fizzbuzzTrick}); }); +app.get("/v1/explorers/stack/:stack", (request, response) => { + const stack = request.params.stack; + const explorersByStack = ExplorerController.getExplorersByStack(stack); + + response.json(explorersByStack); +}); + app.listen(port, () => { console.log(`FizzBuzz API in localhost:${port}`); });