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}, + ); } }