From 50d40d9159471e33c4e76ebb60f17f6ea25fe3ae Mon Sep 17 00:00:00 2001 From: luisma0330 Date: Fri, 13 May 2022 18:43:06 -0500 Subject: [PATCH] =?UTF-8?q?A=C3=B1adiendo=20las=20pruebas=20y=20la=20funci?= =?UTF-8?q?onalidad=20del=20nuevo=20endpoint=20de=20stacks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/controllers/ExplorerController.js | 5 +++++ lib/server.js | 5 +++++ lib/services/ExplorerService.js | 5 +++++ test/services/ExplorerService.test.js | 5 +++++ 4 files changed, 20 insertions(+) diff --git a/lib/controllers/ExplorerController.js b/lib/controllers/ExplorerController.js index 85590a6d..03df94a1 100644 --- a/lib/controllers/ExplorerController.js +++ b/lib/controllers/ExplorerController.js @@ -21,6 +21,11 @@ class ExplorerController{ const explorers = Reader.readJsonFile("explorers.json"); return ExplorerService.getAmountOfExplorersByMission(explorers, mission); } + + static getExplorersByStack(stack){ + const explorers = Reader.readJsonFile("explorers.json"); + return ExplorerService.filterByStack(explorers, stack); + } } module.exports = ExplorerController; diff --git a/lib/server.js b/lib/server.js index 9860b437..bdfe4c40 100644 --- a/lib/server.js +++ b/lib/server.js @@ -36,3 +36,8 @@ app.listen(port, () => { console.log(`FizzBuzz API in localhost:${port}`); }); +app.get("/v1/explorers/stack/:stack", (request, response) => { + const stack = request.params.stack; + const explorerStack = ExplorerController.getExplorersByStack(stack); + response.json(explorerStack); +}); \ No newline at end of file diff --git a/lib/services/ExplorerService.js b/lib/services/ExplorerService.js index 9fef9574..e692b0a4 100644 --- a/lib/services/ExplorerService.js +++ b/lib/services/ExplorerService.js @@ -16,6 +16,11 @@ class ExplorerService { return explorersUsernames; } + static filterByStack(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..59e8c15b 100644 --- a/test/services/ExplorerService.test.js +++ b/test/services/ExplorerService.test.js @@ -6,5 +6,10 @@ describe("Tests para ExplorerService", () => { const explorersInNode = ExplorerService.filterByMission(explorers, "node"); expect(explorersInNode.length).toBe(1); }); + test("Nuevo Requerimiento: devolver todos los explorers con el stack javascript", () => { + const explorers = [{stacks: ["java", "ruby", "javascript"]}, {stacks: ["java", "ruby", "python"]}, {stacks: ["ruby", "rails"]}]; + const explorersJS = ExplorerService.filterByStack(explorers, "javascript"); + expect(explorersJS.length).toBe(1); + }); });