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

308 lines
9.3 KiB
TypeScript

// Metro module 6504 (f6505).
import UserDiscountOfferRecord from "../user_offers/records/UserDiscountOfferRecord";
import { PREMIUM_TIER_2_HFU_TWO_WEEK_TRIAL_ID } from "./PremiumConstants";
import { PaymentGateways, AnalyticEvents, Endpoints } from "../../Constants";
import { isAndroid, isIOS } from "../../utils/PlatformUtils";
import Dispatcher from "../../Dispatcher";
import AnalyticsUtils from "../../utils/AnalyticsUtils";
import { HTTP } from "../../_bundle/sendRequest";
import { isAndroidTwoWeekTrialsExperimentEnabled } from "./experiments/AndroidTwoWeekTrialsExperiment";
import SentryUtils_native from "../../utils/SentryUtils.native";
import { UNSAFE_isDismissibleContentDismissed } from "../dismissible_content/DismissibleContentUnsafeUtils";
import { DismissibleContent } from "../../_bundle/Module1358";
import { removeDismissedContent } from "../user_settings/UserSettingsProtoActionCreators";
function $mk114999($env) {
return function getPaymentGateway() {
return isAndroid() ? PaymentGateways.GOOGLE : isIOS() ? PaymentGateways.APPLE : null;
};
}
let env4196 = {};
export async function fetchUserOffer(c25907_0, c25907_1, c25907_2, c25907_3, c25907_4) {
let r38;
let user_trial_offer, user_discount_offer, c25907_7, c25907_8, c25907_9;
let c25907_10 = 0;
const r13 = env4196;
L50: {
try {
let env29792;
L10: {
c25907_8 = r13;
const r36 = env29792 = {
$parent: r13
};
c25907_7 = r36;
env29792[1] = void 0;
env29792[2] = void 0;
env29792[3] = void 0;
env29792[4] = void 0;
env29792[0] = c25907_0;
if (c25907_1 !== void 0) {
env29792[1] = c25907_1;
r38 = c25907_2;
if (r38 !== void 0) {
break L10;
}
} else {
env29792[1] = true;
r38 = c25907_2;
if (r38 !== void 0) {
break L10;
}
}
r38 = {
offerId: void 0,
paymentGatewayOverride: void 0
};
}
env29792[2] = r38;
env29792[3] = c25907_3;
env29792[4] = c25907_4;
env29792[5] = void 0;
env29792[6] = void 0;
env29792[7] = void 0;
env29792[8] = void 0;
env29792[9] = void 0;
env29792[10] = void 0;
env29792[11] = void 0;
env29792[12] = void 0;
env29792[13] = void 0;
await void 0;
if (env29792[1]) {
Dispatcher.dispatch({
type: "BILLING_USER_OFFER_FETCH_START"
});
c25907_10 = 1;
if (env29792[0] != null) {
AnalyticsUtils.track(AnalyticEvents.FETCH_USER_OFFER_STARTED, {
call_location: env29792[0]
});
}
env29792[5] = env29792[2].offerId;
env29792[6] = env29792[2].paymentGatewayOverride;
env29792[7] = env29792[6] !== void 0 ? env29792[6] : $mk114999(env4196)();
env29792[8] = env29792[7] == null && env29792[5] == null ? {} : {
payment_gateway: env29792[7],
offer_id: env29792[5]
};
const r125 = await HTTP.post({
url: Endpoints.USER_OFFER,
body: env29792[8],
rejectWithError: true,
retries: env29792[3] != null ? env29792[3].retries : void 0
});
const r135 = "Returned user discount offer does not match offer ID request parameter";
env29792[9] = r125;
const user_trial_offer2 = env29792[9].body.user_trial_offer;
user_trial_offer = user_trial_offer2;
if (user_trial_offer2 == null) {
user_trial_offer = null;
}
env29792[10] = user_trial_offer;
const user_discount_offer2 = env29792[9].body.user_discount_offer;
user_discount_offer = user_discount_offer2;
if (user_discount_offer2 == null) {
user_discount_offer = null;
}
env29792[11] = user_discount_offer;
env29792[12] = env29792[10]?.trial_id === PREMIUM_TIER_2_HFU_TWO_WEEK_TRIAL_ID && !isAndroidTwoWeekTrialsExperimentEnabled({
location: "user_offer_action_creators"
});
if (env29792[5] != null && env29792[11] != null) {
if (env29792[11].discount_id !== env29792[5]) {
env29792[13] = new Error(r135);
SentryUtils_native.captureException(env29792[13], {
extra: {
offer_id: env29792[5],
user_discount_offer: env29792[11]
},
...env29792[4]
});
throw env29792[13];
}
}
if (env29792[10] == null && UNSAFE_isDismissibleContentDismissed(DismissibleContent.NAGBAR_NOTICE_PREMIUM_TIER_TWO_TRIAL_ENDING)) {
removeDismissedContent(DismissibleContent.NAGBAR_NOTICE_PREMIUM_TIER_TWO_TRIAL_ENDING);
}
Dispatcher.dispatch({
type: "BILLING_USER_OFFER_FETCH_SUCCESS",
userTrialOffer: env29792[12] ? null : env29792[10],
userDiscountOffer: env29792[11] != null ? UserDiscountOfferRecord.createFromServer(env29792[11]) : null
});
c25907_10 = 0;
break L50;
}
} catch ($e) {
const r34 = $e;
let r8 = r34;
c25907_9 = r34;
if (c25907_10 !== 0) {
while (true) {
try {
c25907_10 = 0;
Dispatcher.dispatch({
type: "BILLING_USER_OFFER_FETCH_FAIL"
});
} catch (r241) {
r8 = r241;
c25907_9 = r241;
if (c25907_10 === 0) {
break;
}
continue;
}
return false;
}
}
throw r8;
}
return false;
}
return true;
}
export async function fetchExistingChurnDiscountOffer() {
let r75;
let offer;
let c25908_4 = 0;
let c29793_0, c29793_1;
try {
c29793_0 = void 0;
c29793_1 = void 0;
Dispatcher.dispatch({
type: "BILLING_USER_OFFER_FETCH_START"
});
c25908_4 = 1;
const offer3 = (await HTTP.get({
url: Endpoints.CHURN_USER_OFFER,
rejectWithError: true
})).body.offer;
offer = offer3;
if (offer3 == null) {
offer = null;
}
c29793_0 = offer;
c29793_1 = c29793_0 != null ? UserDiscountOfferRecord.createFromServer(c29793_0) : null;
Dispatcher.dispatch({
type: "BILLING_USER_OFFER_FETCH_SUCCESS",
userDiscountOffer: c29793_1
});
r75 = {
userDiscountOffer: c29793_1
};
c25908_4 = 0;
} catch ($e) {
let r8 = $e;
if (c25908_4 !== 0) {
while (true) {
try {
c25908_4 = 0;
Dispatcher.dispatch({
type: "BILLING_USER_OFFER_FETCH_FAIL"
});
} catch ($e) {
r8 = $e;
if (c25908_4 === 0) {
break;
}
continue;
}
return void 0;
}
}
throw r8;
}
return r75;
}
export async function fetchChurnDiscountOffer() {
let r70;
let offer2;
let c25909_4 = 0;
let c29794_1, c29794_0;
L14: {
try {
c29794_1 = void 0;
c29794_0 = null;
c25909_4 = 1;
const offer3 = (await HTTP.post({
url: Endpoints.CHURN_USER_OFFER,
rejectWithError: true
})).body.offer;
offer2 = offer3;
if (offer3 == null) {
offer2 = null;
}
c29794_1 = offer2;
if (c29794_1 != null) {
c29794_0 = UserDiscountOfferRecord.createFromServer(c29794_1);
Dispatcher.dispatch({
type: "BILLING_USER_OFFER_FETCH_SUCCESS",
userDiscountOffer: c29794_0
});
}
c25909_4 = 0;
r70 = c29794_0;
} catch ($e) {
let r8 = $e;
if (c25909_4 !== 0) {
while (true) {
try {
c25909_4 = 0;
r70 = c29794_0;
break L14;
} catch ($e) {
r8 = $e;
if (c25909_4 === 0) {
break;
}
}
}
}
throw r8;
}
}
return r70;
}
export function acknowledgeUserOffer(a0, a1) {
const user_trial_offer_id = a0 != null ? a0.expires_at == null ? a0.id : void 0 : void 0;
const user_discount_offer_id = a1 == null ? void 0 : a1.hasAcknowledged() ? void 0 : a1.id;
if (user_trial_offer_id === void 0 && user_discount_offer_id === void 0) {
return void 0;
}
return HTTP.post({
url: Endpoints.USER_OFFER_ACKNOWLEDGED,
body: {
user_trial_offer_id,
user_discount_offer_id
},
oldFormErrors: true,
rejectWithError: false
}).then((result) => {
let user_discount = result.body.user_discount;
if (user_discount == null) {
user_discount = null;
}
let user_discount_offer2 = result.body.user_discount_offer;
if (user_discount_offer2 == null) {
user_discount_offer2 = null;
}
let user_trial_offer2 = result.body.user_trial_offer;
if (user_trial_offer2 == null) {
user_trial_offer2 = null;
}
Dispatcher.dispatch({
type: "BILLING_USER_OFFER_ACKNOWLEDGED_SUCCESS",
userTrialOffer: user_trial_offer2,
userDiscount: user_discount != null ? UserDiscountOfferRecord.createFromServer(user_discount) : null,
userDiscountOffer: user_discount_offer2 != null ? UserDiscountOfferRecord.createFromServer(user_discount_offer2) : null
});
}).catch((error) => {
if (error.status === 404) {
Dispatcher.dispatch({
type: "BILLING_USER_OFFER_ACKNOWLEDGED_SUCCESS",
userTrialOffer: null,
userDiscount: null,
userDiscountOffer: null
});
}
});
}