114 lines
3.7 KiB
JavaScript
114 lines
3.7 KiB
JavaScript
const AbonemmentService = require('../../services/abonemments/AbonemmentService');
|
|
const service = new AbonemmentService();
|
|
|
|
module.exports = {
|
|
async subscribe(req, res) {
|
|
try {
|
|
const result = await service.subscribeOrder({
|
|
userId: req.user?.id || null,
|
|
items: req.body.items,
|
|
billingInterval: req.body.billing_interval,
|
|
intervalCount: req.body.interval_count,
|
|
isAutoRenew: req.body.is_auto_renew,
|
|
firstName: req.body.firstName,
|
|
lastName: req.body.lastName,
|
|
email: req.body.email,
|
|
street: req.body.street,
|
|
postalCode: req.body.postalCode,
|
|
city: req.body.city,
|
|
country: req.body.country,
|
|
frequency: req.body.frequency,
|
|
startDate: req.body.startDate,
|
|
actorUser: req.user,
|
|
referredBy: req.body.referred_by, // NEW: Pass referred_by from frontend
|
|
});
|
|
return res.json({ success: true, data: result });
|
|
} catch (err) {
|
|
console.error('[ABONEMENT SUBSCRIBE]', err);
|
|
return res.status(400).json({ success: false, message: err.message });
|
|
}
|
|
},
|
|
|
|
async pause(req, res) {
|
|
try {
|
|
const data = await service.pause({ abonementId: req.params.id, actorUser: req.user });
|
|
return res.json({ success: true, data });
|
|
} catch (err) {
|
|
console.error('[ABONEMENT PAUSE]', err);
|
|
return res.status(400).json({ success: false, message: err.message });
|
|
}
|
|
},
|
|
|
|
async resume(req, res) {
|
|
try {
|
|
const data = await service.resume({ abonementId: req.params.id, actorUser: req.user });
|
|
return res.json({ success: true, data });
|
|
} catch (err) {
|
|
console.error('[ABONEMENT RESUME]', err);
|
|
return res.status(400).json({ success: false, message: err.message });
|
|
}
|
|
},
|
|
|
|
async cancel(req, res) {
|
|
try {
|
|
const data = await service.cancel({ abonementId: req.params.id, actorUser: req.user });
|
|
return res.json({ success: true, data });
|
|
} catch (err) {
|
|
console.error('[ABONEMENT CANCEL]', err);
|
|
return res.status(400).json({ success: false, message: err.message });
|
|
}
|
|
},
|
|
|
|
async renew(req, res) {
|
|
try {
|
|
const data = await service.adminRenew({ abonementId: req.params.id, actorUser: req.user });
|
|
return res.json({ success: true, data });
|
|
} catch (err) {
|
|
console.error('[ABONEMENT RENEW]', err);
|
|
return res.status(403).json({ success: false, message: err.message });
|
|
}
|
|
},
|
|
|
|
async getMine(req, res) {
|
|
try {
|
|
const data = await service.getMyAbonements({ userId: req.user.id });
|
|
return res.json({ success: true, data });
|
|
} catch (err) {
|
|
console.error('[ABONEMENT MINE]', err);
|
|
return res.status(500).json({ success: false, message: 'Internal error' });
|
|
}
|
|
},
|
|
|
|
async getHistory(req, res) {
|
|
try {
|
|
const data = await service.getHistory({ abonementId: req.params.id });
|
|
return res.json({ success: true, data });
|
|
} catch (err) {
|
|
console.error('[ABONEMENT HISTORY]', err);
|
|
return res.status(400).json({ success: false, message: err.message });
|
|
}
|
|
},
|
|
|
|
async adminList(req, res) {
|
|
try {
|
|
const data = await service.adminList({ status: req.query.status });
|
|
return res.json({ success: true, data });
|
|
} catch (err) {
|
|
console.error('[ABONEMENT ADMIN LIST]', err);
|
|
return res.status(403).json({ success: false, message: err.message });
|
|
}
|
|
},
|
|
|
|
async getReferredSubscriptions(req, res) {
|
|
try {
|
|
const data = await service.getReferredSubscriptions({
|
|
userId: req.user.id,
|
|
email: req.user.email,
|
|
});
|
|
return res.json({ success: true, data });
|
|
} catch (err) {
|
|
console.error('[ABONEMENT REFERRED SUBSCRIPTIONS]', err);
|
|
return res.status(400).json({ success: false, message: err.message });
|
|
}
|
|
},
|
|
}; |