diff --git a/lib/controllers/ExplorerController.js b/lib/controllers/ExplorerController.js index 85590a6d..f969150d 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(mission){ + const explorers= Reader.readJsonFile("explorers.json"); + return ExplorerService.getExplorersByStack(explorers,mission); + } } module.exports = ExplorerController; diff --git a/lib/server.js b/lib/server.js index 9860b437..45994d7a 100644 --- a/lib/server.js +++ b/lib/server.js @@ -32,6 +32,14 @@ app.get("/v1/fizzbuzz/:score", (request, response) => { response.json({score: score, trick: fizzbuzzTrick}); }); +// Crea un endpoint nuevo que regrese toda la lista de explorers filtrados por un stack +// localhost:3000/v1/explorers/stack/javascript. +app.get("/v1/explorers/stack/:mission", (req,res) => { + const mission= req.params.mission; + const ExplorersByStack = ExplorerController.getExplorersByStack(mission); + res.json(ExplorersByStack); +}); + app.listen(port, () => { console.log(`FizzBuzz API in localhost:${port}`); }); diff --git a/lib/services/ExplorerService.js b/lib/services/ExplorerService.js index 9fef9574..55e34130 100644 --- a/lib/services/ExplorerService.js +++ b/lib/services/ExplorerService.js @@ -15,7 +15,11 @@ class ExplorerService { const explorersUsernames = explorersByMission.map((explorer) => explorer.githubUsername); return explorersUsernames; } - + + static getExplorersByStack(explorers,mission){ + const explorerByStacks= explorers.filter((explorer) => explorer.stacks.includes(mission)); + return explorerByStacks; + } } module.exports = ExplorerService;