diff --git a/src/pages/api/users/update.ts b/src/pages/api/users/update.ts index bbd1b75c..5fd6f8e7 100644 --- a/src/pages/api/users/update.ts +++ b/src/pages/api/users/update.ts @@ -90,7 +90,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { if (updatedUser.status || updatedUser.type === "corporate") { // there's no await as this does not affect the user propagateStatusChange(queryId, updatedUser.status); - propagateExpiryDateChanges(queryId, user.subscriptionExpirationDate || null, updatedUser.subscriptionExpirationDate || null); + propagateExpiryDateChanges(queryId, user.subscriptionExpirationDate, updatedUser.subscriptionExpirationDate || null); } res.status(200).json({ok: true}); diff --git a/src/utils/propagate.user.changes.ts b/src/utils/propagate.user.changes.ts index 48e896bf..c0346741 100644 --- a/src/utils/propagate.user.changes.ts +++ b/src/utils/propagate.user.changes.ts @@ -67,7 +67,7 @@ export const propagateStatusChange = (userId: string, status: UserStatus) => }); }); -export const propagateExpiryDateChanges = (userId: string, initialExpiryDate: Date | null, subscriptionExpirationDate: Date | null) => +export const propagateExpiryDateChanges = (userId: string, initialExpiryDate: Date | null | undefined, subscriptionExpirationDate: Date | null) => new Promise((resolve, reject) => { getDoc(doc(db, "users", userId)) .then((docUser) => { @@ -93,6 +93,7 @@ export const propagateExpiryDateChanges = (userId: string, initialExpiryDate: Da .then(async (data) => { const filtered = data.filter((x) => { if (x === null) return false; + if (!x.subscriptionExpirationDate && !initialExpiryDate) return true; if (x.subscriptionExpirationDate !== initialExpiryDate) return false; return true; }) as User[];