import Banners from "../models/bannerModel.js" import cloudinary from "cloudinary"; // import cloudinary from "../Utils/cloudinary.js" //import { v2 as cloudinary } from 'cloudinary' export const createBanner = async (req, res) => { try { const files = req.files.image; // console.log(files) const myCloud = await cloudinary.uploader.upload(files.tempFilePath, { folder: "cmp/image", }, function (error, result) { (result, error) }); const { title, startDate, endDate } = req.body; const data = await Banners.create({ title, // subTitle, image: { public_id: myCloud.public_id, url: myCloud.secure_url, }, // section, startDate, endDate, // subSection }); res.status(201).json({ success: true, msg: " create Banner Successfully!!", data, }); } catch (error) { // console.log(error) res.status(500).json({ success: false, msg: "Failled to create Banner !!" }); } }; //get All Banners export const getAllBanner = async (req, res) => { try { const banner = await Banners.find(); // console.log(category) res.status(200).json({ success: true, msg: " fetch Successfully!!", banner, }); } catch (error) { res.status(500).json({ success: false, msg: "Failled to fetch !!" }); } }; //get One Banner export const getOneBanner = async (req, res) => { try { const banner = await Banners.findById(req.params.id); // console.log(category) res.status(200).json({ success: true, msg: " fetch Successfully!!", banner, }); } catch (error) { // console.log(error) res.status(500).json({ success: false, msg: "Failled to fetch !!" }); } }; // 3.update Event export const updateBanner = async (req, res) => { try { const newBannerData = { title: req.body.title, // subTitle: req.body.subTitle, // section: req.body.section, // subSection: req.body.subSection, startDate: req.body.startDate, endDate: req.body.endDate, }; if (req.files) { const files = req.files.image; const getBanner = await Banners.findById(req.params.id); const imageId = getBanner.image.public_id; // console.log(imageId) //delete image from claudinary await cloudinary.uploader.destroy(imageId) // await cloudinary.uploader.destroy(imageId, function (result) { console.log(result) }); const myCloud = await cloudinary.uploader.upload(files.tempFilePath, { folder: "image", }, function (error, result) { (result, error) }); // console.log(myCloud) newBannerData.image = { public_id: myCloud.public_id, url: myCloud.secure_url, }; } //req.user.id, const ModifyBanner = await Banners.findByIdAndUpdate(req.params.id, newBannerData, { new: true } // runValidators: true, // useFindAndModify: false, ); res.status(200).json({ success: true, ModifyBanner }); } catch (error) { console.log(error) res.status(500).json({ success: false, msg: "Failled to UpDate Banner!!" }); } }; //delete one Banner export const deleteBanner = async (req, res) => { try { //delete image from cloudinary const getBanner = await Banners.findById(req.params.id); // console.log(categ) const imageId = getBanner.image.public_id; await cloudinary.uploader.destroy(imageId) //-------------------------// const banner = await Banners.findByIdAndDelete(req.params.id) if (!banner) { return res.status(400).json({ message: 'banner Not Found' }); } await banner.remove(); res.status(200).json({ success: true, msg: "banner Deleted Successfully!!", // category, }); } catch (error) { res.status(500).json({ success: false, msg: "Failled to Delete banner !!" }); } };