7fife-backend/controllers/subscription.controller.js

191 lines
6.3 KiB
JavaScript

const Subscription = require('../models/subscription.model');
const subconstant = require('../util/subscriptionConstant');
const Create = async(req,res) => {
try{
let obj = {
subscriptionTitle: req.body.subscriptionTitle || undefined,
validity: {
duration: req.body.validity && req.body.validity.duration ? req.body.validity.duration : undefined,
count: req.body.validity && req.body.validity.count ? req.body.validity.count : undefined
},
price: req.body.price ? subconstant.priceCalculate(req.body.offer, req.body.price) : undefined,
offer: req.body.offer || undefined,
adfree: req.body.adfree || undefined,
download: req.body.download || undefined,
description: req.body.description || undefined,
}
const subscription = await Subscription.create(obj);
// console.log(subscription);
return res.status(200).send({
error_code : 200,
message : 'Subscription got created',
subscription:subscription
})
}catch(err){
console.log('Error inside subscription create',err);
return res.status(500).send({
error_code : 500,
message : 'Internal server Error while creating subscription'
})
}
}
const getAllsubs = async (req,res) => {
try
{
let obj = {};
const subs = await Subscription.find(obj);
res.status(201).send(subconstant.getSubscription(subs));
}
catch(err){
console.log('error inside update subscription controller',err);
return res.status(500).send({
error_code : 200,
message : 'Internal Server Error'
})
}
}
const getsub = async (req,res) => {
try
{
let obj = {};
if(req.params.id){
obj._id = req.params.id
}
const subs = await Subscription.find(obj);
console.log('list of subscription',subs);
return res.status(201).send(subconstant.getSubscription(subs));
}
catch(err){
console.log('error inside update subscription controller',err);
return res.status(500).send({
error_code : 500,
message : 'Internal Server Error'
})
}
}
const updatesub = async(req,res) => {
try{
if(req.body == undefined){
return res.status(200).json({error_code : 400, message : 'Epmty Request Body'})
}
let id = req.params.id;
const sub = await Subscription.findById(id);
console.log(req.body,req.file);
let obj =
{
subscriptionTitle : req.body.subscriptionTitle ? req.body.subscriptionTitle : undefined,
validity : {
duration : req.body.validity.duration ? req.body.validity.duration : undefined,
count : req.body.validity.count ? req.body.validity.count : undefined
},
price : req.body.price ? req.body.price : undefined,
description : req.body.description ? req.body.description : undefined,
offer : req.body.offer ? req.body.offer : undefined,
adfree : req.body.adfree ? req.body.adfree :undefined,
description : req.body.description ? req.body.description : undefined,
status : req.body.status ? req.body.status : undefined,
download : req.body.download ? req.body.download : undefined
}
if(req.body.offer){
if(req.body.price)
obj.price = subconstant.priceCalculate(req.body.offer,req.body.price);
else{
let originalPrice = Math.floor((sub.price*100)/(100-sub.offer));
obj.price = subconstant.priceCalculate(req.body.offer,originalPrice)
}
}
else if(!req.body.offer && req.body.price){
obj.price = subconstant.priceCalculate(sub.offer,req.body.price)
}
await sub.updateOne(obj);
console.log('subscription got updated',sub);
return res.status(201).send({
error_code : 200,
message : 'subscription got updated'
})
} catch(err){
console.log('Error inside update subscription controller',err);
return res.status(500).send({
error_code : 500,
message : 'Internal Server Error'
})
}
}
const deletesub = async(req,res) => {
try{
let id = req.params.id;
await Subscription.deleteOne({_id :id});
return res.status(201).send({
message : 'subscription got deleted'
})
}catch(err){
return res.status(500).send({
error_code : 500,
message : 'Internal Server Error'
})
}
};
const updateStatus = async function(req, res){
try {
let id = req.params.id;
const sub = await Subscription.findById(id);
if(sub.status == 'activate'){
sub.status = 'deactivate'
}else if(sub.status == 'deactivate'){
sub.status = 'activate'
}
await sub.save()
return res.status(200).json({error_code : 200, message : 'Status Update Successfully.'})
} catch (error) {
console.log(error);
return res.status(50).json({ error_code : 500, message : 'Internal Server Error'})
}
}
const getSingleSub = async (req, res) => {
try {
const subId = req.params.id;
// Check if subscription ID is provided
if (!subId) {
return res.status(400).json({ error_code: 400, message: 'Subscription ID is required' });
}
// Find subscription by ID
const subscription = await Subscription.findById(subId);
// Check if subscription exists
if (!subscription) {
return res.status(404).json({ error_code: 404, message: 'Subscription not found' });
}
// Return the subscription details
return res.status(200).json({ error_code: 200, subscription });
} catch (error) {
console.log('Error inside getSingleSub controller:', error);
return res.status(500).json({ error_code: 500, message: 'Internal Server Error' });
}
}
module.exports = {
Create,
getAllsubs,
updatesub,
deletesub,
getsub,
updateStatus,
getSingleSub
}