79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const path = require("path");
 | |
| 
 | |
| const PreLotteryWine = require(path.join(__dirname, "/schemas/PreLotteryWine"));
 | |
| const { WineNotFound } = require(path.join(__dirname, "/vinlottisErrors"));
 | |
| 
 | |
| const allWines = () => {
 | |
|   return PreLotteryWine.find();
 | |
| };
 | |
| 
 | |
| const addWines = wines => {
 | |
|   const prelotteryWines = wines.map(wine => {
 | |
|     let newPrelotteryWine = new PreLotteryWine({
 | |
|       name: wine.name,
 | |
|       vivinoLink: wine.vivinoLink,
 | |
|       rating: wine.rating,
 | |
|       image: wine.image,
 | |
|       price: wine.price,
 | |
|       country: wine.country,
 | |
|       id: wine.id
 | |
|     });
 | |
| 
 | |
|     return newPrelotteryWine.save();
 | |
|   });
 | |
| 
 | |
|   return Promise.all(prelotteryWines);
 | |
| };
 | |
| 
 | |
| const wineById = (id, updateModel) => {
 | |
|   return PreLotteryWine.findOne({ _id: id }).then(wine => {
 | |
|     if (wine == null) {
 | |
|       throw new WineNotFound();
 | |
|     }
 | |
|     return wine;
 | |
|   });
 | |
| };
 | |
| 
 | |
| const updateWineById = (id, updateModel) => {
 | |
|   return PreLotteryWine.findOne({ _id: id }).then(wine => {
 | |
|     if (wine == null) {
 | |
|       throw new WineNotFound();
 | |
|     }
 | |
| 
 | |
|     const updatedWine = {
 | |
|       name: updateModel.name != null ? updateModel.name : wine.name,
 | |
|       vivinoLink: updateModel.vivinoLink != null ? updateModel.vivinoLink : wine.vivinoLink,
 | |
|       rating: updateModel.rating != null ? updateModel.rating : wine.rating,
 | |
|       image: updateModel.image != null ? updateModel.image : wine.image,
 | |
|       price: updateModel.price != null ? updateModel.price : wine.price,
 | |
|       country: updateModel.country != null ? updateModel.country : wine.country,
 | |
|       id: updateModel.id != null ? updateModel.id : wine.id
 | |
|     };
 | |
| 
 | |
|     return PreLotteryWine.updateOne({ _id: id }, updatedWine).then(_ => updatedWine);
 | |
|   });
 | |
| };
 | |
| 
 | |
| const deleteWineById = id => {
 | |
|   return PreLotteryWine.findOne({ _id: id }).then(wine => {
 | |
|     if (wine == null) {
 | |
|       throw new WineNotFound();
 | |
|     }
 | |
| 
 | |
|     return PreLotteryWine.deleteOne({ _id: id }).then(_ => wine);
 | |
|   });
 | |
| };
 | |
| 
 | |
| const deleteWines = () => {
 | |
|   return PreLotteryWine.deleteMany();
 | |
| };
 | |
| 
 | |
| module.exports = {
 | |
|   allWines,
 | |
|   addWines,
 | |
|   wineById,
 | |
|   updateWineById,
 | |
|   deleteWineById,
 | |
|   deleteWines
 | |
| };
 |