From bdd862c63301506bc5f76e2c632d3f48fcd1af91 Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Mon, 27 May 2024 13:08:11 +0100 Subject: [PATCH] Updated the state to be active on payment --- src/pages/api/paymob/webhook.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/pages/api/paymob/webhook.ts b/src/pages/api/paymob/webhook.ts index 8a54b75f..b4cf1bb4 100644 --- a/src/pages/api/paymob/webhook.ts +++ b/src/pages/api/paymob/webhook.ts @@ -45,7 +45,7 @@ async function post(req: NextApiRequest, res: NextApiResponse) { const updatedSubscriptionExpirationDate = moment(initialDate).add(duration, duration_unit).endOf("day").subtract(2, "hours").toISOString(); - await setDoc(userSnapshot.ref, {subscriptionExpirationDate: updatedSubscriptionExpirationDate}, {merge: true}); + await setDoc(userSnapshot.ref, {subscriptionExpirationDate: updatedSubscriptionExpirationDate, status: "active"}, {merge: true}); await setDoc(doc(db, "paypalpayments", v4()), { createdAt: new Date().toISOString(), currency: transactionResult.transaction.currency, @@ -65,10 +65,16 @@ async function post(req: NextApiRequest, res: NextApiResponse) { const participants = (await Promise.all( groups.flatMap((x) => x.participants).map(async (x) => ({...(await getDoc(doc(db, "users", x))).data(), id: x})), )) as User[]; - const sameExpiryDateParticipants = participants.filter((x) => x.subscriptionExpirationDate === subscriptionExpirationDate); + const sameExpiryDateParticipants = participants.filter( + (x) => x.subscriptionExpirationDate === subscriptionExpirationDate && x.status !== "disabled", + ); for (const participant of sameExpiryDateParticipants) { - await setDoc(doc(db, "users", participant.id), {subscriptionExpirationDate: updatedSubscriptionExpirationDate}, {merge: true}); + await setDoc( + doc(db, "users", participant.id), + {subscriptionExpirationDate: updatedSubscriptionExpirationDate, status: "active"}, + {merge: true}, + ); } }