From 8c97ea0da0333af13f0920cb5ebe42c30f77798c Mon Sep 17 00:00:00 2001 From: prafull-opensignlabs Date: Tue, 3 Sep 2024 19:30:51 +0530 Subject: [PATCH] fix: duplicate entry issue --- .../cloud/parsefunction/SubscribeFree.js | 60 ++++++++++--------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/apps/OpenSignServer/cloud/parsefunction/SubscribeFree.js b/apps/OpenSignServer/cloud/parsefunction/SubscribeFree.js index 49bad4060..31ed14adf 100644 --- a/apps/OpenSignServer/cloud/parsefunction/SubscribeFree.js +++ b/apps/OpenSignServer/cloud/parsefunction/SubscribeFree.js @@ -14,35 +14,37 @@ export default async function SubscribeFree(request) { }); subscriptionCls.descending('createdAt'); const subcripitions = await subscriptionCls.first({ useMasterKey: true }); - if (subcripitions?.get('PlanCode') === 'freeplan') { - return { status: 'success', result: 'already subscribed!' }; - } else if (subcripitions?.get('Next_billing_date') < new Date()) { - try { - const updateSubscription = new Parse.Object('contracts_Subscriptions'); - updateSubscription.id = subcripitions.id; - updateSubscription.set('PlanCode', 'freeplan'); - updateSubscription.set('AllowedCredits', 0); - updateSubscription.set('PlanCredits', 0); - await updateSubscription.save(null, { useMasterKey: true }); - return { status: 'success', result: 'subscribed!' }; - } catch (err) { - console.log('err ', err); - return { status: 'error', result: err.message }; - } - } else if (subcripitions?.get('Next_billing_date') > new Date()) { - return { status: 'success', result: 'already subscribed!' }; - } else if (!subcripitions?.get('PlanCode')) { - try { - const updateSubscription = new Parse.Object('contracts_Subscriptions'); - updateSubscription.id = subcripitions.id; - updateSubscription.set('PlanCode', 'freeplan'); - updateSubscription.set('AllowedCredits', 0); - updateSubscription.set('PlanCredits', 0); - await updateSubscription.save(null, { useMasterKey: true }); - return { status: 'success', result: 'subscribed!' }; - } catch (err) { - console.log('err ', err); - return { status: 'error', result: err.message }; + if (subcripitions) { + if (subcripitions?.get('PlanCode') === 'freeplan') { + return { status: 'success', result: 'already subscribed!' }; + } else if (subcripitions?.get('Next_billing_date') < new Date()) { + try { + const updateSubscription = new Parse.Object('contracts_Subscriptions'); + updateSubscription.id = subcripitions.id; + updateSubscription.set('PlanCode', 'freeplan'); + updateSubscription.set('AllowedCredits', 0); + updateSubscription.set('PlanCredits', 0); + await updateSubscription.save(null, { useMasterKey: true }); + return { status: 'success', result: 'subscribed!' }; + } catch (err) { + console.log('err ', err); + return { status: 'error', result: err.message }; + } + } else if (subcripitions?.get('Next_billing_date') > new Date()) { + return { status: 'success', result: 'already subscribed!' }; + } else { + try { + const updateSubscription = new Parse.Object('contracts_Subscriptions'); + updateSubscription.id = subcripitions.id; + updateSubscription.set('PlanCode', 'freeplan'); + updateSubscription.set('AllowedCredits', 0); + updateSubscription.set('PlanCredits', 0); + await updateSubscription.save(null, { useMasterKey: true }); + return { status: 'success', result: 'subscribed!' }; + } catch (err) { + console.log('err ', err); + return { status: 'error', result: err.message }; + } } } else { try {