New message & wine controllers!

These interface towards the respective repositories.
Wine:
 - /api/wine/:id - getWineById
 - /api/wines - allWines

Messages:
 - /api/lottery/messages/winner/:id - notifyWinnerById
This commit is contained in:
2021-02-18 21:02:07 +01:00
parent 824bd60c02
commit fc029f80df
2 changed files with 80 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
const path = require("path");
const messageRepository = require(path.join(__dirname, "../message"));
const winnerRepository = require(path.join(__dirname, "../winner"));
const notifyWinnerById = (req, res) => {
const { id } = req.params;
const isAdmin = req.isAuthenticated();
return winnerRepository
.winnerById(id, isAdmin)
.then(winner => messageRepository.sendPrizeSelectionLink(winner))
.then(messageResponse =>
res.send({
messageResponse,
success: true
})
)
.catch(error => {
const { statusCode, message } = error;
return res.status(statusCode || 500).send({
message: message || "Unexpected error occured while sending message to winner by id.",
success: false
});
});
};
module.exports = {
notifyWinnerById
};

View File

@@ -0,0 +1,50 @@
const path = require("path");
const wineRepository = require(path.join(__dirname, "../wine"));
const allWines = (req, res) => {
// TODO add "includeWinners"
return wineRepository
.allWines()
.then(wines =>
res.send({
wines: wines,
message: `All wines.`,
success: true
})
)
.catch(error => {
const { statusCode, message } = error;
return res.status(statusCode || 500).send({
success: false,
message: message || "Unable to fetch all wines."
});
});
};
const wineById = (req, res) => {
const { id } = req.params;
return wineRepository
.wineById(id)
.then(wine => {
res.send({
wine,
success: true
});
})
.catch(error => {
const { statusCode, message } = error;
return res.status(statusCode || 500).send({
message: message || "Unexpected error occured while fetching wine by id.",
success: false
});
});
};
module.exports = {
allWines,
wineById
};