static fromApiResponse()

in ClassyTaxiServer/src/play-billing/internal/purchases_impl.ts [141:162]


  static fromApiResponse(apiResponse: any, packageName: string, purchaseToken: string, sku: string, verifiedAt:number): SubscriptionPurchaseImpl {
    // Intentionally hide developerPayload as the field was deprecated
    apiResponse.developerPayload = null;

    const purchase = new SubscriptionPurchaseImpl();
    Object.assign(purchase, apiResponse);
    purchase.purchaseToken = purchaseToken;
    purchase.sku = sku;
    purchase.verifiedAt = verifiedAt;
    purchase.replacedByAnotherPurchase = false;
    purchase.packageName = packageName;
    purchase.isMutable = purchase.autoRenewing || (verifiedAt < purchase.expiryTimeMillis);

    // Play Developer API subscriptions:get returns some properties as string instead of number as documented. We do some type correction here to fix that
    if (purchase.startTimeMillis) purchase.startTimeMillis = Number(purchase.startTimeMillis);
    if (purchase.expiryTimeMillis) purchase.expiryTimeMillis = Number(purchase.expiryTimeMillis);
    if (purchase.autoResumeTimeMillis) purchase.autoResumeTimeMillis = Number(purchase.autoResumeTimeMillis);
    if (purchase.priceAmountMicros) purchase.priceAmountMicros = Number(purchase.priceAmountMicros);
    if (purchase.userCancellationTimeMillis) purchase.userCancellationTimeMillis = Number(purchase.userCancellationTimeMillis);

    return purchase;
  }