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
 | 
						|
};
 |