in src/utils/fxa.ts [311:350]
async function reactivate(bearerToken: string): Promise<void> {
try {
const subs = (await getSubscriptions(bearerToken)) ?? [];
let subscriptionId;
for (const sub of subs) {
if (
sub &&
sub.productId &&
sub.productId === process.env.PREMIUM_PRODUCT_ID
) {
subscriptionId = sub.subscriptionId;
}
}
if (subscriptionId) {
const reactivateSubscriptionUrl = `${envVars.OAUTH_ACCOUNT_URI}/oauth/subscriptions/reactivate`;
const response = await fetch(reactivateSubscriptionUrl, {
method: "POST",
headers: {
"Content-Type": "application/json",
Accept: "application/json",
Authorization: `Bearer ${bearerToken}`,
},
body: JSON.stringify({
subscriptionId,
}),
});
const responseJson = await response.json();
if (!response.ok) throw new Error(responseJson);
logger.info("reactivate_fxa_subscription_success");
}
} catch (e) {
if (e instanceof Error) {
logger.error("reactivate_fxa_subscription", {
stack: e.stack,
message: e.message,
});
}
throw e;
}
}