Better error handling for claim prize.

We wrap await function calls with try catch and return the res if any
error occur.
This commit is contained in:
2021-02-18 20:58:57 +01:00
parent ab58a45da5
commit 6003151e3b

View File

@@ -65,15 +65,25 @@ const submitPrizeForWinnerById = async (req, res) => {
const { id } = req.params;
const { wine } = req.body;
const winner = await prizeDistribution.verifyWinnerNextInLine(id);
const prelotteryWine = await lottery.wineById(wine.id);
let prelotteryWine, winner;
try {
prelotteryWine = await prelotteryWineRepository.wineById(wine._id);
winner = await winnerRepository.winnerById(id, true);
} catch (error) {
const { statusCode, message } = error;
return res.status(statusCode || 500).send({
message: message || "Unexpected error occured while claiming prize.",
success: false
});
}
return prizeDistribution
.claimPrize(winner, prelotteryWine)
.claimPrize(prelotteryWine, winner)
.then(_ => prizeDistribution.notifyNextWinner())
.then(_ =>
res.send({
message: `${winner.name} successfully claimed prize: ${wine.name}`,
message: `${winner.name} successfully claimed prize: ${prelotteryWine.name}`,
success: true
})
)