Spaces:
Running
Running
File size: 3,328 Bytes
97f53b4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
const express = require("express");
const router = express.Router();
const mongoose = require("mongoose");
const multer = require('multer');
const Drinks = require("../Database/models/drinks");
const { responseAddProduct, responseFetchProduct } = require("../utils/responseModel");
const firebase = require("../utils/firebase")
var imageUrl = ""
//Disk storage where image store
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads/drinks');
},
filename: function (req, file, cb) {
cb(null, file.originalname);
}
});
//Check the image formate
const fileFilter = (req, file, cb) => {
// reject a file
if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png' || file.mimetype === 'image/jpg') {
cb(null, true);
} else {
cb(null, false);
}
};
const upload = multer({
storage: storage,
limits: {
fileSize: 1024 * 1024 * 5
},
fileFilter: fileFilter
});
//Add products
router.post("/", upload.single('file'), async (req, res) => {
await firebase.uploadFile(req.file.path, "Drinks/" + req.file.filename)
await firebase.generateSignedUrl("Drinks/" + req.file.filename).then(res => {
imageUrl = res
})
if (imageUrl == "") {
imageUrl = req.file.path
}
console.log(req.body)
const drinks = Drinks({
_id: mongoose.Types.ObjectId(),
name: req.body.name,
price: req.body.price,
description: req.body.description,
image: imageUrl,
isLiked: req.body.isLiked,
});
drinks
.save()
.then(result => {
console.log(result);
res.status(200).send(
responseAddProduct(true, result));
})
.catch(err => {
console.log(err.message);
res.status(500).send(responseAddProduct(false, err));
});
});
//Get products
router.get("/", (req, res, next) => {
Drinks.find()
.exec()
.then(result => {
res.status(200).send(
responseFetchProduct(true, result));
})
.catch(err => {
console.log(err);
res.status(500).send(responseFetchProduct(false, err));
});
});
//Update products
router.put('/:id', upload.single('drinksImage'), async (req, res) => {
const id = req.params.id;
console.log(req.body);
const updateOps = {};
for (const ops of Object.keys(req.body)) {
updateOps[ops] = req.body[ops];
}
console.log(updateOps);
Drinks.updateOne({ _id: id }, { $set: updateOps })
.exec()
.then(result => {
res.status(200).send(
responseFetchProduct(true, result));
})
.catch(err => {
console.log(err);
res.status(500).send(responseFetchProduct(false, err));
});
});
//Delete products
router.delete("/:id", (req, res) => {
const id = req.params.id;
Vegetables.deleteOne({ _id: id })
.exec()
.then(result => {
res.status(200).send(
responseFetchProduct(true, result));
})
.catch(err => {
console.log(err);
res.status(500).send(responseFetchProduct(false, err));
});
});
module.exports = router;
|