diff --git a/.env b/.env index c04c22d..f10d8bb 100644 --- a/.env +++ b/.env @@ -20,15 +20,16 @@ CLOUDINARY_API_SECRET = "KkjTq-3v_vZpWqiOEnnWmGf7DoM" # SMPT_PORT="587" # SMPT_MAIL="beameri.team@gmail.com" # SMPT_PASSWORD="xsmtpsib-a88c224860249a3f1e0765e0e3d119c1bf07ad21f2859318fbf50975deee1711-JrdPpfsvF6LwEn4A" -SEND_EMAIL_FROM="project.printsigns@gmail.com" +SEND_EMAIL_FROM="Sales@thesolarsign.com" # Bolo Ai SENDGRID_API_KEY="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" SMPT_HOST="smtp-relay.brevo.com" SMPT_PORT="587" -SMPT_MAIL="project.printsigns@gmail.com" -SMPT_PASSWORD="CBNyJ4bZ3XR1IUDc" +SMPT_MAIL="polytek01@yahoo.com" +SMPT_PASSWORD="254GT9dQngVKIFHz" +# SMPT_PASSWORD="CBNyJ4bZ3XR1IUDc" PAYPAL_CLIENT_ID="AemCjVuWswklp1sWUo4peCFg9eS4bofMsMR0RCrVRB2DifYR1IUSrWqtHpVmQlrVMKTI2cWZXLJAdYwn" PAYPAL_CLIENT_SECRET="EAo0Y9ff3jpHHg1QAbftdebfh7cb_-vnebhQrP9KALbCVer908yx2tO2eHO39r7EJSfqc4D69Qgx8R31" \ No newline at end of file diff --git a/app.js b/app.js index c8ce50c..1c6db9e 100644 --- a/app.js +++ b/app.js @@ -53,6 +53,9 @@ import PurposeRoute from "./resources/setting/Purpose/Purpose_routes.js"; // category Route import categoryRoute from "./resources/Category/categoryRoutes.js"; import bannerRoute from "./resources/Banner/BannerRouter.js"; +import RegistrationImageRoute from './resources/RegistrationImage/RegistrationImageRoute.js'; +import loginImageRoute from './resources/LoginImage/LoginImageRoute.js' +import shopImageRoute from './resources/ShopPageImage/ShopPageImageRoute.js' import ContentRoute from "./resources/Content/ContentRoutes.js"; import UserAddressRoute from "./resources/userAddress/useAddressRoute.js"; //business_Type @@ -79,6 +82,10 @@ app.use("/api", ProductRouter); // Category app.use("/api/category", categoryRoute); app.use("/api/banner", bannerRoute); +// registration image +app.use('/api/registerImage', RegistrationImageRoute) +app.use('/api/loginImage', loginImageRoute) +app.use('/api/shopImage', shopImageRoute) // Content app.use("/api/content", ContentRoute); // User Address diff --git a/resources/LoginImage/LoginImageController.js b/resources/LoginImage/LoginImageController.js new file mode 100644 index 0000000..49dfa65 --- /dev/null +++ b/resources/LoginImage/LoginImageController.js @@ -0,0 +1,221 @@ +import mongoose from "mongoose"; + +import cloudinary from "../../Utils/cloudinary.js"; +import { LoginImageModel } from "./LoginImageModel.js"; + +// Add new Category +export const addImage = async (req, res) => { + // const { bannerName } = req.body; + const { bannerImage } = req.files; + // console.log("image", bannerImage); + // console.log(categoryName, categoryImage); + + if (!req?.user) return res.status(400).json({ message: "please login !" }); + try { + if (!mongoose.Types.ObjectId.isValid(req.user._id)) { + return res.status(400).json({ message: "please login again " }); + } + const result = await cloudinary.v2.uploader.upload( + bannerImage.tempFilePath, + { + folder: "jatinMor/loginImage", + } + ); + + if (result) { + const regsiterImage = await LoginImageModel.create({ + image: result, + addedBy: req.user._id, + }); + if (regsiterImage) { + return res + .status(201) + .json({ success: true, regsiterImage, message: "Image Added" }); + } + } + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +export const getImage = async (req, res) => { + try { + // if (!req?.user) return res.status(400).json({ message: "please login !" }); + const image = await LoginImageModel.find().sort({ + createdAt: -1, + }); + + if (!image) { + return res.status(404).json({ message: "No categories found" }); + } + // console.log("image", image); + res.status(200).json({ success: true, image }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went wrong", + }); + } +}; +// export const updateImage = async (req, res) => { +// try { +// if (!req?.user) return res.status(400).json({ message: "please login !" }); +// const { _id } = req.params; +// const { bannerName } = req.body; +// const olderImage = req.body?.olderImage; +// const bannerImag = req.files?.bannerImage; + +// if (!mongoose.Types.ObjectId.isValid(_id)) { +// return res.status(404).json({ error: "Can not find the document " }); +// } + +// if (olderImage) { +// // If there's an older image, delete it from Cloudinary +// const deletefromCloudinary = await LoginImageModel.findOne({ _id: _id }); +// const deleteresponse = await cloudinary.v2.uploader.destroy( +// deletefromCloudinary.image.public_id +// ); + +// if (deleteresponse) { +// // Upload the new image to Cloudinary +// const result = await cloudinary.v2.uploader.upload( +// bannerImag.tempFilePath, +// { +// folder: "jatinMor/loginImage", +// } +// ); + +// // Update the document with the new image +// const update = await LoginImageModel.findOneAndUpdate( +// { _id: _id }, +// { bannerImage: result }, // Provide the updated bannerImage +// { new: true } // To return the updated document +// ); + +// if (!update) { +// return res +// .status(404) +// .json({ message: "Can not update document, something went wrong" }); +// } else { +// return res.status(200).json({ success: true, update }); +// } +// } +// } else { +// // If there's no older image, update the document with the existing bannerImage +// const update = await LoginImageModel.findOneAndUpdate( +// { _id: _id }, +// { bannerImage: JSON.parse(bannerImag) }, // Provide the updated bannerImage +// { new: true } // To return the updated document +// ); + +// if (update) { +// return res.status(200).json({ success: true, update }); +// } +// } +// } catch (error) { +// res.status(500).json({ +// success: false, +// message: error.message ? error.message : "Something went wrong", +// }); +// } +// }; + +export const updateImage = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + const { _id } = req.params; + const { bannerName } = req.body; + const olderImage = req.body?.olderImage; + const bannerImag = req.files?.bannerImage; + // console.log("bannerImag", bannerImag); + + if (!mongoose.Types.ObjectId.isValid(_id)) { + return res.status(404).json({ error: "Can not find the document " }); + } + // console.log(JSON.parse(olderImage).length); + // find the document with the id to delete the image from cloudinary + + if (olderImage) { + + const deletefromCloudinary = await LoginImageModel.findOne({ _id: _id }); + + // console.log("deletefromCloudinary", deletefromCloudinary) + const deleteresponse = await cloudinary.v2.uploader.destroy( + deletefromCloudinary.image.public_id + ); + + + if (deleteresponse) { + + const result = await cloudinary.v2.uploader.upload( + bannerImag.tempFilePath, + { + folder: "jatinMor/loginImage", + } + ); + console.log("result", result); + const update = await LoginImageModel.findOneAndUpdate( + { _id: _id }, + { image: result }, // Provide the updated categoryName + { new: true } // To return the updated document + ); + if (!update) { + return res + .status(404) + .json({ message: "Can not update document, something went wrong" }); + } else { + return res.status(200).json({ success: true, update }); + } + } + } else { + const update = await LoginImageModel.findOneAndUpdate( + { _id: _id }, + { image: JSON.parse(olderImage) }, // Provide the updated categoryName + { new: true } // To return the updated document + ); + if (update) { + return res.status(200).json({ success: true, update }); + } + } + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went wrong", + }); + } +}; + +export const deleteImage = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + const { _id } = req.params; + if (!mongoose.Types.ObjectId.isValid(_id)) { + return res.status(404).json({ error: "Can not find the document " }); + } + + const deletefromCloudinary = await LoginImageModel.findOne({ _id: _id }); + // console.log(deletefromCloudinary); + const deleteresponse = await cloudinary.v2.uploader.destroy( + deletefromCloudinary.image.public_id + ); + if (deleteresponse) { + const deleteBanner = await LoginImageModel.findOneAndDelete({ _id: _id }); + if (!deleteBanner) { + return res.status(404).json({ + error: "Can not find the document with the provided id to delete ", + }); + } + res.status(200).json({ success: true, deleteBanner }); + } else { + return res.status(404).json({ error: "can not delete the banner " }); + } + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went wrong", + }); + } +}; diff --git a/resources/LoginImage/LoginImageModel.js b/resources/LoginImage/LoginImageModel.js new file mode 100644 index 0000000..d3c0309 --- /dev/null +++ b/resources/LoginImage/LoginImageModel.js @@ -0,0 +1,19 @@ +import mongoose from "mongoose"; + +const LoginImageSchema = new mongoose.Schema( + { + + image: { + type: Object, + required: true + }, + addedBy: { + type: mongoose.Schema.ObjectId, + ref: "User", + required: true, + }, + }, + { timestamps: true } +); + +export const LoginImageModel = mongoose.model("LoginImageModel", LoginImageSchema); diff --git a/resources/LoginImage/LoginImageRoute.js b/resources/LoginImage/LoginImageRoute.js new file mode 100644 index 0000000..5c75634 --- /dev/null +++ b/resources/LoginImage/LoginImageRoute.js @@ -0,0 +1,19 @@ +import express from "express"; +import { isAuthenticatedUser, authorizeRoles } from "../../middlewares/auth.js"; + +// import { addImage, deleteImage, getImage, updateImage } from "./RegistrationImageController.js"; +import { addImage, deleteImage, getImage, updateImage } from "./LoginImageController.js"; +const router = express.Router(); + +router + .route("/add") + .post(isAuthenticatedUser, authorizeRoles("admin"), addImage); +router.route("/getImage").get(getImage); +router + .route("/update/:_id") + .patch(isAuthenticatedUser, authorizeRoles("admin"), updateImage); +router + .route("/delete/:_id") + .delete(isAuthenticatedUser, authorizeRoles("admin"), deleteImage); + +export default router; diff --git a/resources/RegistrationImage/RegistrationImageController.js b/resources/RegistrationImage/RegistrationImageController.js new file mode 100644 index 0000000..7a52e4b --- /dev/null +++ b/resources/RegistrationImage/RegistrationImageController.js @@ -0,0 +1,221 @@ +import mongoose from "mongoose"; + +import cloudinary from "../../Utils/cloudinary.js"; +import { RegistrationImageModel } from "./RegistrationImageModel.js"; + +// Add new Category +export const addImage = async (req, res) => { + // const { bannerName } = req.body; + const { bannerImage } = req.files; + // console.log("image", bannerImage); + // console.log(categoryName, categoryImage); + + if (!req?.user) return res.status(400).json({ message: "please login !" }); + try { + if (!mongoose.Types.ObjectId.isValid(req.user._id)) { + return res.status(400).json({ message: "please login again " }); + } + const result = await cloudinary.v2.uploader.upload( + bannerImage.tempFilePath, + { + folder: "jatinMor/registrationImage", + } + ); + + if (result) { + const regsiterImage = await RegistrationImageModel.create({ + image: result, + addedBy: req.user._id, + }); + if (regsiterImage) { + return res + .status(201) + .json({ success: true, regsiterImage, message: "Image Added" }); + } + } + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +export const getImage = async (req, res) => { + try { + // if (!req?.user) return res.status(400).json({ message: "please login !" }); + const image = await RegistrationImageModel.find().sort({ + createdAt: -1, + }); + + if (!image) { + return res.status(404).json({ message: "No categories found" }); + } + // console.log("image", image); + res.status(200).json({ success: true, image }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went wrong", + }); + } +}; +// export const updateImage = async (req, res) => { +// try { +// if (!req?.user) return res.status(400).json({ message: "please login !" }); +// const { _id } = req.params; +// const { bannerName } = req.body; +// const olderImage = req.body?.olderImage; +// const bannerImag = req.files?.bannerImage; + +// if (!mongoose.Types.ObjectId.isValid(_id)) { +// return res.status(404).json({ error: "Can not find the document " }); +// } + +// if (olderImage) { +// // If there's an older image, delete it from Cloudinary +// const deletefromCloudinary = await RegistrationImageModel.findOne({ _id: _id }); +// const deleteresponse = await cloudinary.v2.uploader.destroy( +// deletefromCloudinary.image.public_id +// ); + +// if (deleteresponse) { +// // Upload the new image to Cloudinary +// const result = await cloudinary.v2.uploader.upload( +// bannerImag.tempFilePath, +// { +// folder: "jatinMor/registrationImage", +// } +// ); + +// // Update the document with the new image +// const update = await RegistrationImageModel.findOneAndUpdate( +// { _id: _id }, +// { bannerImage: result }, // Provide the updated bannerImage +// { new: true } // To return the updated document +// ); + +// if (!update) { +// return res +// .status(404) +// .json({ message: "Can not update document, something went wrong" }); +// } else { +// return res.status(200).json({ success: true, update }); +// } +// } +// } else { +// // If there's no older image, update the document with the existing bannerImage +// const update = await RegistrationImageModel.findOneAndUpdate( +// { _id: _id }, +// { bannerImage: JSON.parse(bannerImag) }, // Provide the updated bannerImage +// { new: true } // To return the updated document +// ); + +// if (update) { +// return res.status(200).json({ success: true, update }); +// } +// } +// } catch (error) { +// res.status(500).json({ +// success: false, +// message: error.message ? error.message : "Something went wrong", +// }); +// } +// }; + +export const updateImage = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + const { _id } = req.params; + const { bannerName } = req.body; + const olderImage = req.body?.olderImage; + const bannerImag = req.files?.bannerImage; + // console.log("bannerImag", bannerImag); + + if (!mongoose.Types.ObjectId.isValid(_id)) { + return res.status(404).json({ error: "Can not find the document " }); + } + // console.log(JSON.parse(olderImage).length); + // find the document with the id to delete the image from cloudinary + + if (olderImage) { + + const deletefromCloudinary = await RegistrationImageModel.findOne({ _id: _id }); + + // console.log("deletefromCloudinary", deletefromCloudinary) + const deleteresponse = await cloudinary.v2.uploader.destroy( + deletefromCloudinary.image.public_id + ); + + + if (deleteresponse) { + + const result = await cloudinary.v2.uploader.upload( + bannerImag.tempFilePath, + { + folder: "jatinMor/registrationImage", + } + ); + console.log("result", result); + const update = await RegistrationImageModel.findOneAndUpdate( + { _id: _id }, + { image: result }, // Provide the updated categoryName + { new: true } // To return the updated document + ); + if (!update) { + return res + .status(404) + .json({ message: "Can not update document, something went wrong" }); + } else { + return res.status(200).json({ success: true, update }); + } + } + } else { + const update = await RegistrationImageModel.findOneAndUpdate( + { _id: _id }, + { image: JSON.parse(olderImage) }, // Provide the updated categoryName + { new: true } // To return the updated document + ); + if (update) { + return res.status(200).json({ success: true, update }); + } + } + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went wrong", + }); + } +}; + +export const deleteImage = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + const { _id } = req.params; + if (!mongoose.Types.ObjectId.isValid(_id)) { + return res.status(404).json({ error: "Can not find the document " }); + } + + const deletefromCloudinary = await RegistrationImageModel.findOne({ _id: _id }); + // console.log(deletefromCloudinary); + const deleteresponse = await cloudinary.v2.uploader.destroy( + deletefromCloudinary.image.public_id + ); + if (deleteresponse) { + const deleteBanner = await RegistrationImageModel.findOneAndDelete({ _id: _id }); + if (!deleteBanner) { + return res.status(404).json({ + error: "Can not find the document with the provided id to delete ", + }); + } + res.status(200).json({ success: true, deleteBanner }); + } else { + return res.status(404).json({ error: "can not delete the banner " }); + } + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went wrong", + }); + } +}; diff --git a/resources/RegistrationImage/RegistrationImageModel.js b/resources/RegistrationImage/RegistrationImageModel.js new file mode 100644 index 0000000..2957a42 --- /dev/null +++ b/resources/RegistrationImage/RegistrationImageModel.js @@ -0,0 +1,19 @@ +import mongoose from "mongoose"; + +const RegistrationImageSchema = new mongoose.Schema( + { + + image: { + type: Object, + required: true + }, + addedBy: { + type: mongoose.Schema.ObjectId, + ref: "User", + required: true, + }, + }, + { timestamps: true } +); + +export const RegistrationImageModel = mongoose.model("RegistrationImageModel", RegistrationImageSchema); diff --git a/resources/RegistrationImage/RegistrationImageRoute.js b/resources/RegistrationImage/RegistrationImageRoute.js new file mode 100644 index 0000000..9eef3db --- /dev/null +++ b/resources/RegistrationImage/RegistrationImageRoute.js @@ -0,0 +1,18 @@ +import express from "express"; +import { isAuthenticatedUser, authorizeRoles } from "../../middlewares/auth.js"; + +import { addImage, deleteImage, getImage, updateImage } from "./RegistrationImageController.js"; +const router = express.Router(); + +router + .route("/add") + .post(isAuthenticatedUser, authorizeRoles("admin"), addImage); +router.route("/getImage").get(getImage); +router + .route("/update/:_id") + .patch(isAuthenticatedUser, authorizeRoles("admin"), updateImage); +router + .route("/delete/:_id") + .delete(isAuthenticatedUser, authorizeRoles("admin"), deleteImage); + +export default router; diff --git a/resources/ShopPageImage/ShopPageImageController.js b/resources/ShopPageImage/ShopPageImageController.js new file mode 100644 index 0000000..6fdb04f --- /dev/null +++ b/resources/ShopPageImage/ShopPageImageController.js @@ -0,0 +1,223 @@ +import mongoose from "mongoose"; + +import cloudinary from "../../Utils/cloudinary.js"; +import { ShopPageImageModel } from "./ShopPageImageModel.js"; + + + +// Add new Category +export const addImage = async (req, res) => { + // const { bannerName } = req.body; + const { bannerImage } = req.files; + // console.log("image", bannerImage); + // console.log(categoryName, categoryImage); + + if (!req?.user) return res.status(400).json({ message: "please login !" }); + try { + if (!mongoose.Types.ObjectId.isValid(req.user._id)) { + return res.status(400).json({ message: "please login again " }); + } + const result = await cloudinary.v2.uploader.upload( + bannerImage.tempFilePath, + { + folder: "jatinMor/shopImage", + } + ); + + if (result) { + const regsiterImage = await ShopPageImageModel.create({ + image: result, + addedBy: req.user._id, + }); + if (regsiterImage) { + return res + .status(201) + .json({ success: true, regsiterImage, message: "Image Added" }); + } + } + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went Wrong", + }); + } +}; + +export const getImage = async (req, res) => { + try { + // if (!req?.user) return res.status(400).json({ message: "please login !" }); + const image = await ShopPageImageModel.find().sort({ + createdAt: -1, + }); + + if (!image) { + return res.status(404).json({ message: "No categories found" }); + } + // console.log("image", image); + res.status(200).json({ success: true, image }); + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went wrong", + }); + } +}; +// export const updateImage = async (req, res) => { +// try { +// if (!req?.user) return res.status(400).json({ message: "please login !" }); +// const { _id } = req.params; +// const { bannerName } = req.body; +// const olderImage = req.body?.olderImage; +// const bannerImag = req.files?.bannerImage; + +// if (!mongoose.Types.ObjectId.isValid(_id)) { +// return res.status(404).json({ error: "Can not find the document " }); +// } + +// if (olderImage) { +// // If there's an older image, delete it from Cloudinary +// const deletefromCloudinary = await ShopPageImageModel.findOne({ _id: _id }); +// const deleteresponse = await cloudinary.v2.uploader.destroy( +// deletefromCloudinary.image.public_id +// ); + +// if (deleteresponse) { +// // Upload the new image to Cloudinary +// const result = await cloudinary.v2.uploader.upload( +// bannerImag.tempFilePath, +// { +// folder: "jatinMor/shopImage", +// } +// ); + +// // Update the document with the new image +// const update = await ShopPageImageModel.findOneAndUpdate( +// { _id: _id }, +// { bannerImage: result }, // Provide the updated bannerImage +// { new: true } // To return the updated document +// ); + +// if (!update) { +// return res +// .status(404) +// .json({ message: "Can not update document, something went wrong" }); +// } else { +// return res.status(200).json({ success: true, update }); +// } +// } +// } else { +// // If there's no older image, update the document with the existing bannerImage +// const update = await ShopPageImageModel.findOneAndUpdate( +// { _id: _id }, +// { bannerImage: JSON.parse(bannerImag) }, // Provide the updated bannerImage +// { new: true } // To return the updated document +// ); + +// if (update) { +// return res.status(200).json({ success: true, update }); +// } +// } +// } catch (error) { +// res.status(500).json({ +// success: false, +// message: error.message ? error.message : "Something went wrong", +// }); +// } +// }; + +export const updateImage = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + const { _id } = req.params; + const { bannerName } = req.body; + const olderImage = req.body?.olderImage; + const bannerImag = req.files?.bannerImage; + // console.log("bannerImag", bannerImag); + + if (!mongoose.Types.ObjectId.isValid(_id)) { + return res.status(404).json({ error: "Can not find the document " }); + } + // console.log(JSON.parse(olderImage).length); + // find the document with the id to delete the image from cloudinary + + if (olderImage) { + + const deletefromCloudinary = await ShopPageImageModel.findOne({ _id: _id }); + + // console.log("deletefromCloudinary", deletefromCloudinary) + const deleteresponse = await cloudinary.v2.uploader.destroy( + deletefromCloudinary.image.public_id + ); + + + if (deleteresponse) { + + const result = await cloudinary.v2.uploader.upload( + bannerImag.tempFilePath, + { + folder: "jatinMor/shopImage", + } + ); + console.log("result", result); + const update = await ShopPageImageModel.findOneAndUpdate( + { _id: _id }, + { image: result }, // Provide the updated categoryName + { new: true } // To return the updated document + ); + if (!update) { + return res + .status(404) + .json({ message: "Can not update document, something went wrong" }); + } else { + return res.status(200).json({ success: true, update }); + } + } + } else { + const update = await ShopPageImageModel.findOneAndUpdate( + { _id: _id }, + { image: JSON.parse(olderImage) }, // Provide the updated categoryName + { new: true } // To return the updated document + ); + if (update) { + return res.status(200).json({ success: true, update }); + } + } + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went wrong", + }); + } +}; + +export const deleteImage = async (req, res) => { + try { + if (!req?.user) return res.status(400).json({ message: "please login !" }); + const { _id } = req.params; + if (!mongoose.Types.ObjectId.isValid(_id)) { + return res.status(404).json({ error: "Can not find the document " }); + } + + const deletefromCloudinary = await ShopPageImageModel.findOne({ _id: _id }); + // console.log(deletefromCloudinary); + const deleteresponse = await cloudinary.v2.uploader.destroy( + deletefromCloudinary.image.public_id + ); + if (deleteresponse) { + const deleteBanner = await ShopPageImageModel.findOneAndDelete({ _id: _id }); + if (!deleteBanner) { + return res.status(404).json({ + error: "Can not find the document with the provided id to delete ", + }); + } + res.status(200).json({ success: true, deleteBanner }); + } else { + return res.status(404).json({ error: "can not delete the banner " }); + } + } catch (error) { + res.status(500).json({ + success: false, + message: error.message ? error.message : "Something went wrong", + }); + } +}; diff --git a/resources/ShopPageImage/ShopPageImageModel.js b/resources/ShopPageImage/ShopPageImageModel.js new file mode 100644 index 0000000..652834b --- /dev/null +++ b/resources/ShopPageImage/ShopPageImageModel.js @@ -0,0 +1,19 @@ +import mongoose from "mongoose"; + +const ShopImageSchema = new mongoose.Schema( + { + + image: { + type: Object, + required: true + }, + addedBy: { + type: mongoose.Schema.ObjectId, + ref: "User", + required: true, + }, + }, + { timestamps: true } +); + +export const ShopPageImageModel = mongoose.model("ShopPageImageModel", ShopImageSchema); diff --git a/resources/ShopPageImage/ShopPageImageRoute.js b/resources/ShopPageImage/ShopPageImageRoute.js new file mode 100644 index 0000000..5117e62 --- /dev/null +++ b/resources/ShopPageImage/ShopPageImageRoute.js @@ -0,0 +1,20 @@ +import express from "express"; +import { isAuthenticatedUser, authorizeRoles } from "../../middlewares/auth.js"; +import { addImage, deleteImage, getImage, updateImage } from "./ShopPageImageController.js"; + +// import { addImage, deleteImage, getImage, updateImage } from "./RegistrationImageController.js"; +// import { addImage, deleteImage, getImage, updateImage } from "./LoginImageController.js"; +const router = express.Router(); + +router + .route("/add") + .post(isAuthenticatedUser, authorizeRoles("admin"), addImage); +router.route("/getImage").get(getImage); +router + .route("/update/:_id") + .patch(isAuthenticatedUser, authorizeRoles("admin"), updateImage); +router + .route("/delete/:_id") + .delete(isAuthenticatedUser, authorizeRoles("admin"), deleteImage); + +export default router;