async function reactivate()

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;
  }
}