Files
discord-decomp/modules/virtual_currency/VirtualCurrencyActionCreators.tsx
T
2026-11-01 12:12:55 +02:00

223 lines
6.2 KiB
TypeScript

// Metro module 8722 (f8723).
import SKUStore from "../../stores/game_store/SKUStore";
import { Endpoints } from "../../Constants";
import Logger from "../debug/Logger";
import Dispatcher from "../../Dispatcher";
import { HTTP } from "../../_bundle/sendRequest";
import { BillingError } from "../../errors/index";
import { isTestModeForApplication } from "../game_store/TestModeUtils";
import SentryUtils_native from "../../utils/SentryUtils.native";
function $mk115332($env) {
return () => {
Dispatcher.dispatch({
type: "VIRTUAL_CURRENCY_REDEEM_START",
skuId: $env[0]
});
};
}
let c5686_6;
let env5686 = {};
export async function fetchVirtualCurrencyBalance() {
let body;
let c26275_0, c26275_1, c26275_2;
let c26275_3 = 0;
const r11 = env5686;
try {
let env29973;
c26275_1 = r11;
const r27 = env29973 = {
$parent: r11
};
c26275_0 = r27;
env29973[0] = void 0;
env29973[1] = void 0;
env29973[2] = void 0;
Dispatcher.wait(() => {
Dispatcher.dispatch({
type: "VIRTUAL_CURRENCY_BALANCE_FETCH"
});
});
c26275_3 = 1;
env29973[0] = await HTTP.get({
url: Endpoints.VIRTUAL_CURRENCY_USER_BALANCE,
rejectWithError: false
});
env29973[1] = env29973[0].body.balance;
Dispatcher.dispatch({
type: "VIRTUAL_CURRENCY_BALANCE_FETCH_SUCCESS",
balance: env29973[1]
});
body = env29973[0].body;
c26275_3 = 0;
} catch ($e) {
const r25 = $e;
let r8 = r25;
c26275_2 = r25;
if (c26275_3 !== 0) {
while (true) {
try {
const r79 = c26275_2;
c26275_3 = 0;
env29973[3] = r79;
env29973[2] = env29973[3] instanceof BillingError ? env29973[3] : new BillingError(env29973[3]);
Dispatcher.dispatch({
type: "VIRTUAL_CURRENCY_BALANCE_FETCH_FAIL",
error: env29973[2]
});
} catch (r75) {
r8 = r75;
c26275_2 = r75;
if (c26275_3 === 0) {
break;
}
continue;
}
return void 0;
}
}
throw r8;
}
return body;
}
c5686_6 = new Logger("VirtualCurrencyActionCreators");
export async function redeemVirtualCurrencyForSKU(c26276_0) {
let r176;
let c26276_1, c26276_2, c26276_3;
let c26276_4 = 0;
const r13 = env5686;
L29: {
try {
let env29974;
c26276_2 = r13;
const r36 = env29974 = {
$parent: r13
};
c26276_1 = r36;
env29974[0] = void 0;
env29974[1] = void 0;
env29974[2] = void 0;
env29974[3] = void 0;
env29974[4] = void 0;
env29974[5] = void 0;
env29974[0] = c26276_0.skuId;
env29974[1] = c26276_0.loadId;
env29974[2] = c26276_0.onRedeemStart;
env29974[3] = c26276_0.onRedeemSucceed;
env29974[4] = c26276_0.onRedeemFail;
const shouldRefetchBalance = c26276_0.shouldRefetchBalance;
if (shouldRefetchBalance !== void 0) {
env29974[5] = shouldRefetchBalance;
env29974[6] = void 0;
env29974[7] = void 0;
env29974[8] = void 0;
env29974[9] = void 0;
env29974[10] = void 0;
env29974[11] = void 0;
env29974[12] = void 0;
env29974[13] = void 0;
} else {
env29974[5] = true;
env29974[6] = void 0;
env29974[7] = void 0;
env29974[8] = void 0;
env29974[9] = void 0;
env29974[10] = void 0;
env29974[11] = void 0;
env29974[12] = void 0;
env29974[13] = void 0;
}
await void 0;
Dispatcher.wait($mk115332(c26276_1));
const r71 = env29974[2];
if (r71 != null) {
r71();
}
c26276_4 = 1;
env29974[6] = SKUStore.get(env29974[0]);
env29974[7] = env29974[6]?.applicationId;
env29974[8] = env29974[7] != null && isTestModeForApplication(env29974[7]);
env29974[9] = {
checkout_session_id: env29974[1]
};
if (env29974[8]) {
env29974[9].test_mode = true;
}
const r115 = await HTTP.post({
url: Endpoints.VIRTUAL_CURRENCY_SKU_REDEEM(env29974[0]),
body: env29974[9],
rejectWithError: false
});
const r125 = "Could not read entitlements from Virtual Currency redemption response. Response: ";
env29974[10] = r115.body;
if (env29974[10] != null && Array.isArray(env29974[10])) {
Dispatcher.dispatch({
type: "VIRTUAL_CURRENCY_REDEEM_SUCCESS",
skuId: env29974[0],
entitlements: env29974[10]
});
if (env29974[5]) {
(0, fetchVirtualCurrencyBalance)();
}
const r171 = env29974[3];
if (r171 != null) {
r171(env29974[10]);
}
r176 = env29974[10];
c26276_4 = 0;
break L29;
}
env29974[11] = r125;
env29974[12] = new Error(env29974[11], env29974[10]);
c5686_6.error(env29974[11], env29974[10]);
SentryUtils_native.captureException(env29974[12], {
tags: {
app_context: "virtual_currency"
}
});
throw env29974[12];
} catch ($e) {
const r34 = $e;
let r8 = r34;
c26276_3 = r34;
if (c26276_4 !== 0) {
while (true) {
try {
const r188 = c26276_3;
c26276_4 = 0;
env29974[14] = r188;
env29974[13] = env29974[14] instanceof BillingError ? env29974[14] : new BillingError(env29974[14]);
Dispatcher.dispatch({
type: "VIRTUAL_CURRENCY_REDEEM_FAIL",
skuId: env29974[0],
error: env29974[13]
});
if (env29974[5]) {
(0, fetchVirtualCurrencyBalance)();
}
const r222 = env29974[4];
if (r222 != null) {
r222(env29974[13]);
}
} catch (r184) {
r8 = r184;
c26276_3 = r184;
if (c26276_4 === 0) {
break;
}
continue;
}
return void 0;
}
}
throw r8;
}
}
return r176;
}
export function setBalancePillOverlay(a0) {
return Dispatcher.dispatch({
type: "VIRTUAL_CURRENCY_SET_BALANCE_PILL_OVERLAY",
balancePillOverlay: a0
});
}