diff --git a/api/controllers/lotteryWineController.js b/api/controllers/lotteryWineController.js index 9e0c283..7274dac 100644 --- a/api/controllers/lotteryWineController.js +++ b/api/controllers/lotteryWineController.js @@ -169,11 +169,32 @@ const deleteWines = (req, res) => { }); }; +const wineSchema = (req, res) => { + return prelotteryWineRepository + .wineSchema() + .then(schema => + res.send({ + schema: schema, + message: `Wine schema template.`, + success: true + }) + ) + .catch(error => { + const { statusCode, message } = error; + + return res.status(statusCode || 500).send({ + success: false, + message: message || "Unable to fetch wine schema template." + }); + }); +}; + module.exports = { allWines, addWines, wineById, updateWineById, deleteWineById, - deleteWines + deleteWines, + wineSchema }; diff --git a/api/prelotteryWine.js b/api/prelotteryWine.js index 453c10f..53b87cf 100644 --- a/api/prelotteryWine.js +++ b/api/prelotteryWine.js @@ -70,11 +70,22 @@ const deleteWines = () => { return PreLotteryWine.deleteMany(); }; +const wineSchema = () => { + let schema = { ...PreLotteryWine.schema.obj }; + let nulledSchema = Object.keys(schema).reduce((accumulator, current) => { + accumulator[current] = ""; + return accumulator; + }, {}); + + return Promise.resolve(nulledSchema); +}; + module.exports = { allWines, addWines, wineById, updateWineById, deleteWineById, - deleteWines + deleteWines, + wineSchema }; diff --git a/api/router.js b/api/router.js index a6bf0c4..5ab7f16 100644 --- a/api/router.js +++ b/api/router.js @@ -40,6 +40,7 @@ router.get("/history/by-date/", historyController.groupByDate); // router.delete("/highscore/:id", highscoreController.deletePersonById); router.get("/lottery/wines", prelotteryWineController.allWines); +router.get("/lottery/wine/schema", mustBeAuthenticated, prelotteryWineController.wineSchema); router.get("/lottery/wine/:id", mustBeAuthenticated, prelotteryWineController.wineById); router.post("/lottery/wines", mustBeAuthenticated, prelotteryWineController.addWines); router.delete("/lottery/wines", mustBeAuthenticated, prelotteryWineController.deleteWines);