INNER CODE UNIT · JavaScript
updateSubscriptionState
adeekshith/watomatic · functions/index.js:1104
async function updateSubscriptionState(userId, purchaseToken, subscription, notificationType, eventTimeMillis = null, source = 'rtdn') {
const lineItem = subscription.lineItems?.[0];
if (!lineItem) {
logger.warn('No line items in subscription', { userId });
return;
}
const expiryTime = lineItem.expiryTime ? new Date(lineItem.expiryTime).getTime() : 0;
const productId = lineItem.productId;
const basePlanId = lineItem.offerDetails?.basePlanId;
const subscriptionState = subscription.subscriptionState;
// Determine if subscription is active
const activeStates = [
'SUBSCRIPTION_STATE_ACTIVE',
'SUBSCRIPTION_STATE_IN_GRACE_PERIOD',
];
const isActive = activeStates.includes(subscriptionState) && expiryTime > Date.now();