From a4f2827b5546dbf7d4e53782062f71b940c23294 Mon Sep 17 00:00:00 2001 From: victor-gp99 Date: Thu, 12 May 2022 17:13:57 -0500 Subject: [PATCH] =?UTF-8?q?4=20Contribuci=C3=B3n=20Open=20Source?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/controllers/ExplorerController.js | 5 +++++ lib/server.js | 6 ++++++ lib/services/ExplorerService.js | 4 ++++ test/services/ExplorerService.test.js | 18 ++++++++++++++++++ 4 files changed, 33 insertions(+) diff --git a/lib/controllers/ExplorerController.js b/lib/controllers/ExplorerController.js index 85590a6d..11d74f1f 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 result = ExplorerService.getExplorersByStack(explorers,stack); + return result; + } } module.exports = ExplorerController; diff --git a/lib/server.js b/lib/server.js index 9860b437..a22d5e5b 100644 --- a/lib/server.js +++ b/lib/server.js @@ -36,3 +36,9 @@ app.listen(port, () => { console.log(`FizzBuzz API in localhost:${port}`); }); +app.get("/v1/explorers/stack/:stack", (request, response)=>{ + const stack = request.params.stack; + const explorerInMission = ExplorerController.getExplorersByStack(stack); + response.json(explorerInMission); +}); + diff --git a/lib/services/ExplorerService.js b/lib/services/ExplorerService.js index 9fef9574..f4b521e6 100644 --- a/lib/services/ExplorerService.js +++ b/lib/services/ExplorerService.js @@ -15,6 +15,10 @@ class ExplorerService { const explorersUsernames = explorersByMission.map((explorer) => explorer.githubUsername); return explorersUsernames; } + static getExplorersByStack(explorers,stack){ + const explorersInNode = explorers.filter((explorer) => explorer.stacks.find((tec)=>tec==stack)); + return explorersInNode; + } } diff --git a/test/services/ExplorerService.test.js b/test/services/ExplorerService.test.js index 4313f192..40f13c2a 100644 --- a/test/services/ExplorerService.test.js +++ b/test/services/ExplorerService.test.js @@ -6,5 +6,23 @@ describe("Tests para ExplorerService", () => { const explorersInNode = ExplorerService.filterByMission(explorers, "node"); expect(explorersInNode.length).toBe(1); }); + test ("For getExplorersByStack function que filtra explorers dependieno de la stack",()=>{ + const explorers = [{stacks: [ + "javascript", + "elixir", + "groovy", + "reasonML", + "elm"] + }, + {stacks: [ + "elixir", + "groovy", + "reasonML", + "elm"] + } + ]; + const explorersInNode = ExplorerService.getExplorersByStack(explorers, "javascript"); + expect(explorersInNode.length).toBe(1); + }); });