const constant = require('../util/ads.constant'); const Ads = require('../models/Ads.model') const create = async (req, res) => { try { console.log('create add') const fileName = req.files[0].filename ; let obj = { adsTitle: req.body.adsTitle ? req.body.adsTitle : undefined, redirectLink: req.body.redirectLink ? req.body.redirectLink : undefined, advertiseAs: req.body.advertiseAs ? req.body.advertiseAs : undefined, status: req.body.status ? req.body.status : undefined } if (req.body.advertiseAs == constant.adsType.image) { obj[constant.field.advertiseImage] = "/uploads/" + fileName } else { obj[constant.field.advertiseVideo] = "/uploads/" + fileName } const ad = await Ads.create(obj); return res.status(201).send({ error_code : 200, message: `Ad with ${req.body.advertiseAs} got created` }) } catch (err) { console.log('Error inside create of Ads Controller', err); res.status(500).send({ error_code : 500, message: "Internal Server Error" }) } } const getad = async(req,res) => { try{ let obj = {} const ads = await Ads.find(obj); return res.status(200).send(constant.adsGenerator(ads, req)); }catch(err){ console.log('Error inside getad Controller',err); res.status(500).send({ error_code : 500, message : 'Internal Server Error' }) } } const updateAds = async(req,res) => { try{ const ad = await Ads.findById(req.params.id); let obj = { adsTitle: req.body.adsTitle ? req.body.adsTitle : undefined, redirectLink: req.body.redirectLink ? req.body.redirectLink : undefined, status: req.body.status ? req.body.status : undefined } if(req.body.advertiseAs) { const fileName = req.files[0].filename ; if (req.body.advertiseAs == constant.adsType.image) { obj[constant.field.advertiseImage] = "/uploads/" + fileName delete ad.advertiseVideo; } else { obj[constant.field.advertiseVideo] = "/uploads/" + fileName delete ad.advertiseImage; } } await ad.updateOne(obj); res.status(201).send({ error_code : 200, message : 'Ads got updated' }) }catch(err){ console.log('Error inside updateAds Controller',err); return res.status(500).send({ error_code : 500, message : 'Internal Server Error' }) } } const deletead = async(req,res) => { try{ let id = req.params.id; await Ads.deleteOne({_id :id}); return res.status(201).send({ error_code : 200, message : 'ads got deleted' }) }catch(err){ console.log('Error Occured inside deletead of ads Controller',err); return res.status(500).send({ error_code : 500, message : 'Internal Server Error' }) } }; const updateAdsTime = async (req, res) => { try { const { id } = req.params; const { adsTiming } = req.body; // Assuming adsTiming is provided in minutes // Find the advertisement by ID const ad = await Ads.findById(id); // If the advertisement is not found, return 404 Not Found if (!ad) { return res.status(404).json({ error_code: 404, message: 'Advertisement not found' }); } // Update the advertisement's show timing ad.adsTime = adsTiming; // Assuming adsTiming is in minutes await ad.save(); // Send success response return res.status(200).json({ error_code: 200, message: 'Advertisement show timing updated successfully' }); } catch (err) { console.error('Error inside updateAdsTime Controller:', err); return res.status(500).json({ error_code: 500, message: 'Internal Server Error' }); } }; // const updateAdsStatus = async (req, res) => { // try { // const { id } = req.params; // // Find the advertisement by ID // const ad = await Ads.findById(id); // // If the advertisement is not found, return 404 Not Found // if (!ad) { // return res.status(404).json({ error_code: 404, message: 'Advertisement not found' }); // } // // Toggle the advertisement status between active and inactive // ad.status = ad.status === constant.status.active ? constant.status.inactive : constant.status.active; // await ad.save(); // // Send success response // return res.status(200).json({ error_code: 200, message: 'Advertisement status updated successfully' }); // } catch (err) { // console.error('Error inside updateAdsStatus Controller:', err); // return res.status(500).json({ error_code: 500, message: 'Internal Server Error' }); // } // }; const updateAdsStatus = async (req, res) => { try { const { id } = req.params; const adsData = await Ads.findById(id); if (!adsData) { return res.status(400).send({ error_code: 400, message: 'Ads not found' }); } adsData.status = adsData.status === 'activate' ? 'deactivate' : 'activate'; await adsData.save(); res.status(200).send({ message: `ads status toggled successfully to ${adsData.status}`, adsData: adsData }); } catch (err) { console.error('Error inside update admin', err); res.status(500).send({ error_code: 500, message: 'Internal Server Error' }); } }; module.exports = { create, getad, updateAds, deletead, updateAdsTime, // updateAdsStatus updateAdsStatus }