This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
const { SubscriptionPlan, UserSubscription, UsersAuth } = require('../models');
|
||||
const { cacheUtils } = require('../config/redis');
|
||||
const { addDatabaseWriteJob } = require('../config/bullmq');
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
|
||||
/**
|
||||
@@ -98,16 +97,15 @@ class SubscriptionController {
|
||||
auto_renew: req.body.auto_renew || false,
|
||||
};
|
||||
|
||||
// Async write to DB via BullMQ
|
||||
await addDatabaseWriteJob('create', 'UserSubscription', subscriptionData);
|
||||
const newSubscription = await UserSubscription.create(subscriptionData);
|
||||
|
||||
// Clear cache
|
||||
await cacheUtils.del(`subscription:user:${user_id}`);
|
||||
|
||||
res.status(202).json({
|
||||
res.status(201).json({
|
||||
success: true,
|
||||
message: 'Subscription purchase request queued',
|
||||
data: subscriptionData,
|
||||
message: 'Subscription purchased successfully',
|
||||
data: newSubscription,
|
||||
});
|
||||
} catch (error) {
|
||||
next(error);
|
||||
@@ -153,11 +151,7 @@ class SubscriptionController {
|
||||
// Check nếu subscription đã hết hạn
|
||||
const now = new Date();
|
||||
if (subscription.status === 'active' && new Date(subscription.end_date) < now) {
|
||||
subscription.status = 'expired';
|
||||
await addDatabaseWriteJob('update', 'UserSubscription', {
|
||||
id: subscription.id,
|
||||
status: 'expired',
|
||||
});
|
||||
await subscription.update({ status: 'expired' });
|
||||
}
|
||||
|
||||
await cacheUtils.set(cacheKey, subscription, 900); // Cache 15 min
|
||||
@@ -195,9 +189,8 @@ class SubscriptionController {
|
||||
});
|
||||
}
|
||||
|
||||
// Async update via BullMQ
|
||||
await addDatabaseWriteJob('update', 'UserSubscription', {
|
||||
id,
|
||||
// Update subscription
|
||||
await subscription.update({
|
||||
status: 'cancelled',
|
||||
auto_renew: false,
|
||||
});
|
||||
@@ -205,9 +198,10 @@ class SubscriptionController {
|
||||
// Clear cache
|
||||
await cacheUtils.del(`subscription:user:${subscription.user_id}`);
|
||||
|
||||
res.status(202).json({
|
||||
res.status(200).json({
|
||||
success: true,
|
||||
message: 'Subscription cancellation request queued',
|
||||
message: 'Subscription cancelled successfully',
|
||||
data: subscription,
|
||||
});
|
||||
} catch (error) {
|
||||
next(error);
|
||||
|
||||
Reference in New Issue
Block a user