102 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const path = require("path");
 | 
						|
const vinmonopoletRepository = require(path.join(__dirname, "../vinmonopolet"));
 | 
						|
 | 
						|
function searchWines(req, res) {
 | 
						|
  const { name, page } = req.query;
 | 
						|
 | 
						|
  return vinmonopoletRepository.searchWinesByName(name, page).then(wines =>
 | 
						|
    res.json({
 | 
						|
      wines: wines,
 | 
						|
      count: wines.length,
 | 
						|
      page: page,
 | 
						|
      success: true
 | 
						|
    })
 | 
						|
  )
 | 
						|
  .catch(error => {
 | 
						|
    const { statusCode, message } = error;
 | 
						|
 | 
						|
    return res.status(statusCode || 500).send({
 | 
						|
      message: message || `Unexpected error occured trying to search for wine: ${name} at page: ${page}`,
 | 
						|
      success: false
 | 
						|
    });
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
function wineByEAN(req, res) {
 | 
						|
  const { ean } = req.params;
 | 
						|
 | 
						|
  return vinmonopoletRepository.searchByEAN(ean).then(wines =>
 | 
						|
    res.json({
 | 
						|
      wines: wines,
 | 
						|
      success: true
 | 
						|
    })
 | 
						|
  );
 | 
						|
}
 | 
						|
 | 
						|
function wineById(req, res) {
 | 
						|
  const { id } = req.params;
 | 
						|
 | 
						|
  return vinmonopoletRepository.wineById(id).then(wine =>
 | 
						|
    res.json({
 | 
						|
      wine: wine,
 | 
						|
      success: true
 | 
						|
    })
 | 
						|
  )
 | 
						|
  .catch(error => {
 | 
						|
      const { statusCode, message } = error;
 | 
						|
 | 
						|
      return res.status(statusCode || 500).send({
 | 
						|
        message: message || `Unexpected error occured trying to fetch wine with id: ${id}`,
 | 
						|
        success: false
 | 
						|
      });
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
function allStores(req, res) {
 | 
						|
  return vinmonopoletRepository
 | 
						|
    .allStores()
 | 
						|
    .then(stores =>
 | 
						|
      res.send({
 | 
						|
        stores,
 | 
						|
        success: true
 | 
						|
      })
 | 
						|
    )
 | 
						|
    .catch(error => {
 | 
						|
      const { statusCode, message } = error;
 | 
						|
 | 
						|
      return res.status(statusCode || 500).send({
 | 
						|
        message: message || "Unexpected error occured while fetch all vinmonopolet stores.",
 | 
						|
        success: false
 | 
						|
      });
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
function searchStores(req, res) {
 | 
						|
  const { name } = req.query;
 | 
						|
 | 
						|
  return vinmonopoletRepository
 | 
						|
    .searchStoresByName(name)
 | 
						|
    .then(stores =>
 | 
						|
      res.send({
 | 
						|
        stores,
 | 
						|
        success: true
 | 
						|
      })
 | 
						|
    )
 | 
						|
    .catch(error => {
 | 
						|
      const { statusCode, message } = error;
 | 
						|
 | 
						|
      return res.status(statusCode || 500).send({
 | 
						|
        message: message || "Unexpected error occured while fetch all vinmonopolet stores.",
 | 
						|
        success: false
 | 
						|
      });
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
module.exports = {
 | 
						|
  searchWines,
 | 
						|
  wineByEAN,
 | 
						|
  wineById,
 | 
						|
  allStores,
 | 
						|
  searchStores
 | 
						|
};
 |