feature/fitlien-828 (#124)
All checks were successful
Deploy FitLien services to Dev / Deploy to Dev (push) Successful in 3m53s

Reviewed-on: #124
Co-authored-by: Sharon Dcruz <sharondcruz@cosq.net>
Co-committed-by: Sharon Dcruz <sharondcruz@cosq.net>
This commit is contained in:
Sharon Dcruz 2025-09-23 07:37:15 +00:00 committed by Dhansh A S
parent 3baa70b0a0
commit a69ed7078a

View File

@ -6,6 +6,40 @@ const app = getAdmin();
const logger = getLogger();
const kTrainerRole = "Trainer";
async function updateCacheForMembership(
gymId: string,
membershipId: string
): Promise<void> {
try {
const response = await fetch(
`https://updatemembercache-2k7djjvd3q-el.a.run.app/updateMemberCache`,
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
gymId: gymId,
incrementalUpdate: true,
membershipIds: [membershipId],
}),
}
);
if (response.ok) {
logger.info(
`Cache updated successfully for membership ${membershipId} in gym ${gymId}`
);
} else {
logger.warn(
`Cache update failed for membership ${membershipId}: ${response.status}`
);
}
} catch (error) {
logger.error(`Error updating cache for membership ${membershipId}:`, error);
}
}
interface MembershipData {
id?: string;
userId: string;
@ -150,6 +184,7 @@ async function findExpiredMembershipsWithoutExpiryDate(): Promise<
throw error;
}
}
async function updateExpiryDateForExpiredMembership(
membershipId: string,
membershipData: MembershipData
@ -184,6 +219,8 @@ async function updateExpiryDateForExpiredMembership(
updatedAt: admin.firestore.FieldValue.serverTimestamp(),
});
await updateCacheForMembership(membershipData.gymId, membershipId);
logger.info(
`Updated expiry date for expired membership ${membershipId}: ${expiryDate.toISOString()}`
);
@ -513,6 +550,8 @@ async function updateDaysUntilExpiryForAllMemberships(): Promise<void> {
.doc(doc.id)
.update(updateData);
await updateCacheForMembership(data.gymId, doc.id);
logger.info(
`Updated membership ${doc.id} with daysUntilExpiry: ${daysUntilExpiry}`
);
@ -535,7 +574,6 @@ async function updateDaysUntilExpiryForAllMemberships(): Promise<void> {
throw error;
}
}
async function calculateDaysUntilExpiry(
membershipId: string,
data: MembershipData
@ -665,6 +703,8 @@ async function processExpiredMembership(
});
}
await updateCacheForMembership(membershipData.gymId, membershipId);
logger.info(`Marked membership ${membershipId} as EXPIRED`);
await sendPlanExpiredNotification(membershipId, membershipData);
@ -697,6 +737,8 @@ async function processExpiringMembership(
expirationDate: admin.firestore.Timestamp.fromDate(expiryDate),
updatedAt: admin.firestore.FieldValue.serverTimestamp(),
});
await updateCacheForMembership(membershipData.gymId, membershipId);
}
await sendPlanExpiringNotification(membershipId, membershipData);