61 lines
1.3 KiB
JavaScript
61 lines
1.3 KiB
JavaScript
const path = require("path");
|
|
const wineRepository = require(path.join(__dirname, "../wine"));
|
|
|
|
const allWines = (req, res) => {
|
|
// TODO add "includeWinners"
|
|
let { limit } = req.query;
|
|
|
|
if (limit && isNaN(limit)) {
|
|
return res.status(400).send({
|
|
message: "If limit query parameter is provided it must be a number",
|
|
success: false
|
|
});
|
|
} else if (!!!isNaN(limit)) {
|
|
limit = Number(limit);
|
|
}
|
|
|
|
return wineRepository
|
|
.allWines(limit)
|
|
.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
|
|
};
|