Files
discord-decomp/actions/SubscriptionPlanActionCreators.tsx
T
2026-11-01 12:12:55 +02:00

112 lines
3.7 KiB
TypeScript

// Metro module 6301 (f6302).
import BillingInfoStore from "../stores/billing/BillingInfoStore";
import { Endpoints } from "../Constants";
import { ACTIVE_PREMIUM_SKUS, PremiumSubscriptionSKUs } from "../modules/premium/PremiumConstants";
import Dispatcher from "../Dispatcher";
import { fetchIpCountryCode } from "../modules/billing/actions/BillingActionCreators";
import { HTTP } from "../_bundle/sendRequest";
import { captureBillingException } from "../utils/BillingUtils";
import V6OrEarlierAPIError from "../errors/V6OrEarlierAPIError";
const fetchSubscriptionPlansForSKU = async function fetchSubscriptionPlansForSKU(skuId, country_code, payment_source_id, include_unpublished, revenue_surface, payment_gateway) {
let body;
let c25782_8;
let c25782_9 = 0;
let c29719_0, c29719_1, c29719_2, c29719_3, c29719_4;
try {
c29719_0 = skuId;
c29719_1 = void 0;
c29719_2 = void 0;
c29719_3 = void 0;
Dispatcher.dispatch({
type: "SUBSCRIPTION_PLANS_FETCH",
skuId
});
c25782_9 = 1;
const r47 = {
url: Endpoints.STORE_PUBLISHED_LISTINGS_SUBSCRIPTION_PLANS(skuId),
oldFormErrors: true,
rejectWithError: true,
retries: 10
};
c29719_1 = r47;
const query = {};
if (country_code != null) {
query.country_code = country_code;
}
if (payment_source_id != null) {
query.payment_source_id = payment_source_id;
}
if (include_unpublished != null) {
query.include_unpublished = include_unpublished;
}
if (revenue_surface != null) {
query.revenue_surface = revenue_surface;
}
if (payment_gateway != null) {
query.payment_gateway = payment_gateway;
}
r47.query = query;
if (BillingInfoStore.ipCountryCodeLoaded) {
c29719_2 = await HTTP.get(c29719_1);
Dispatcher.dispatch({
type: "SUBSCRIPTION_PLANS_FETCH_SUCCESS",
skuId: c29719_0,
subscriptionPlans: c29719_2.body
});
body = c29719_2.body;
c25782_9 = 0;
} else {
await fetchIpCountryCode();
c29719_2 = await HTTP.get(c29719_1);
Dispatcher.dispatch({
type: "SUBSCRIPTION_PLANS_FETCH_SUCCESS",
skuId: c29719_0,
subscriptionPlans: c29719_2.body
});
body = c29719_2.body;
c25782_9 = 0;
}
} catch ($e) {
const r37 = $e;
let r8 = r37;
c25782_8 = r37;
if (c25782_9 !== 0) {
while (true) {
try {
const r167 = c25782_8;
c25782_9 = 0;
c29719_4 = r167;
Dispatcher.dispatch({
type: "SUBSCRIPTION_PLANS_FETCH_FAILURE",
skuId: c29719_0
});
captureBillingException(c29719_4);
c29719_3 = new V6OrEarlierAPIError(c29719_4);
c29719_3.message = `Failed to fetch subscription plans for SKU ${c29719_0}`;
throw c29719_3;
} catch (r163) {
r8 = r163;
c25782_8 = r163;
if (c25782_9 === 0) {
break;
}
}
}
}
throw r8;
}
return body;
};
export { fetchSubscriptionPlansForSKU };
export function fetchSubscriptionPlansBySKUs(a0, c15651_0, c15651_1) {
return Promise.all(a0.filter((item) => item !== PremiumSubscriptionSKUs.NONE).map((item) => fetchSubscriptionPlansForSKU(item, c15651_0, void 0, void 0, void 0, c15651_1)));
}
export function fetchPremiumSubscriptionPlans(c15652_0, c15652_1, c15652_2, c15652_3) {
return Promise.all(ACTIVE_PREMIUM_SKUS.filter((item) => item !== PremiumSubscriptionSKUs.NONE).map((item) => fetchSubscriptionPlansForSKU(item, c15652_0, c15652_1, void 0, c15652_2, c15652_3)));
}
export function resetSubscriptionPlanData() {
Dispatcher.dispatch({
type: "SUBSCRIPTION_PLANS_RESET"
});
}