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

295 lines
8.4 KiB
TypeScript

// Metro module 4995 (f4996).
import ConnectedAccountsStore from "../stores/ConnectedAccountsStore";
import { AbortCodes, AnalyticEvents, Endpoints, FRIEND_SYNC_PLATFORM_TYPES } from "../Constants";
import Logger from "../modules/debug/Logger";
import { HTTP, rejectWithMigratedError } from "../_bundle/sendRequest";
import Dispatcher from "../Dispatcher";
import AnalyticsUtils from "../utils/AnalyticsUtils";
import { getCallbackParamsFromURL } from "../modules/connections/ConnectionsUtils";
import TrackedHTTPUtils from "../utils/TrackedHTTPUtils";
import { NetworkActionNames } from "../_bundle/Module503";
let c3004_9;
const callback = function callback(a0, a1, insecure = false) {
return HTTP.post({
url: Endpoints.CONNECTIONS_CALLBACK(a0),
body: {
...a1,
insecure,
friend_sync: FRIEND_SYNC_PLATFORM_TYPES.has(a0)
},
oldFormErrors: true,
rejectWithError: rejectWithMigratedError()
});
};
c3004_9 = new Logger("ConnectedAccounts");
const r33 = {
fetch: () => HTTP.get({
url: Endpoints.CONNECTIONS,
oldFormErrors: true,
rejectWithError: true
}).then((result) => Dispatcher.dispatch({
type: "USER_CONNECTIONS_UPDATE",
local: true,
accounts: result.body
}), () => Dispatcher.dispatch({
type: "USER_CONNECTIONS_UPDATE",
local: true,
accounts: []
})),
authorize: async function authorize(platform_type, r3 = {}) {
const { location: location2, twoWayLinkType, userCode, twoWayLink, successRedirect, handle } = r3;
let c25307_2;
c25307_2 = void 0;
AnalyticsUtils.track(AnalyticEvents.CONNECTED_ACCOUNT_INITIATED, {
platform_type,
location: location2
});
const r42 = Endpoints.CONNECTIONS_AUTHORIZE(platform_type);
const uRLSearchParams = new URLSearchParams();
if (userCode != null) {
uRLSearchParams.append("two_way_user_code", userCode);
}
if (successRedirect != null) {
uRLSearchParams.append("success_redirect", successRedirect);
}
if (twoWayLinkType != null) {
uRLSearchParams.append("two_way_link_type", twoWayLinkType);
uRLSearchParams.append("two_way_link", "true");
} else if (twoWayLink != null) {
uRLSearchParams.append("two_way_link", String(twoWayLink));
}
if (handle != null) {
uRLSearchParams.append("handle", handle);
}
let c29445_0 = await HTTP.get({
url: r42 + "?" + uRLSearchParams.toString(),
oldFormErrors: true,
rejectWithError: rejectWithMigratedError()
});
const url2 = c29445_0.body.url;
let url = url2;
if (url2 == null) {
url = "";
}
let c29445_1 = getCallbackParamsFromURL(url).state;
if (c29445_1 != null) {
ConnectedAccountsStore.addPendingAuthorizedState(c29445_1);
}
return c29445_0;
},
callback,
connect: (a0, a1, a2, a3, a4) => {
const r16 = {
url: Endpoints.CONNECTION(a0, a1),
body: null,
context: null,
oldFormErrors: true,
trackedActionData: null,
rejectWithError: null
};
let friend_sync = a4?.friend_sync;
if (friend_sync == null) {
friend_sync = FRIEND_SYNC_PLATFORM_TYPES.has(a0);
}
r16.body = {
name: a2,
friend_sync
};
r16.context = {
location: a3
};
r16.trackedActionData = {
event: NetworkActionNames.USER_CONNECTIONS_UPDATE,
properties: {
name: a2,
friend_sync: FRIEND_SYNC_PLATFORM_TYPES.has(a0)
}
};
r16.rejectWithError = rejectWithMigratedError();
return TrackedHTTPUtils.put(r16);
},
disconnect: (a0, a1) => HTTP.del({
url: Endpoints.CONNECTION(a0, a1),
oldFormErrors: true,
rejectWithError: rejectWithMigratedError()
}),
refresh: (a0, a1) => HTTP.post({
url: Endpoints.CONNECTION_REFRESH(a0, a1),
oldFormErrors: true,
rejectWithError: rejectWithMigratedError()
}),
setVisibility: function setVisibility(a0, a1, a2) {
return this.update(a0, a1, {
visibility: a2 === 1
});
},
setMetadataVisibility: function setMetadataVisibility(a0, a1, a2) {
return this.update(a0, a1, {
metadata_visibility: a2 === 1
});
},
setFriendSync: function setFriendSync(a0, a1, a2) {
return this.update(a0, a1, {
friend_sync: a2
});
},
setShowActivity: function setShowActivity(a0, a1, a2) {
return this.update(a0, a1, {
show_activity: a2
});
},
update: (a0, a1, a2) => TrackedHTTPUtils.patch({
url: Endpoints.CONNECTION(a0, a1),
body: a2,
oldFormErrors: true,
trackedActionData: {
event: NetworkActionNames.USER_CONNECTIONS_UPDATE,
properties: {
...a2
}
},
rejectWithError: rejectWithMigratedError()
}),
joinServer: (a0, c14493_1) => {
const integrationId = a0;
Dispatcher.dispatch({
type: "USER_CONNECTIONS_INTEGRATION_JOINING",
integrationId: a0,
joining: true
});
HTTP.post({
url: Endpoints.INTEGRATION_JOIN(a0),
oldFormErrors: true,
rejectWithError: rejectWithMigratedError()
}, (a0) => {
Dispatcher.dispatch({
type: "USER_CONNECTIONS_INTEGRATION_JOINING",
integrationId,
joining: false
});
if (!a0.ok) {
Dispatcher.dispatch({
type: "USER_CONNECTIONS_INTEGRATION_JOINING_ERROR",
integrationId,
error: a0.hasErr ? void 0 : a0.body.message
});
if (c14493_1 != null) {
c14493_1();
}
}
});
},
refreshAccessToken: async (c14494_0, c14494_1) => {
let r74;
let c25308_2;
let c25308_3 = 0;
let c29446_0, c29446_1;
try {
c29446_0 = void 0;
c25308_3 = 1;
c29446_0 = (await HTTP.get({
url: Endpoints.CONNECTION_ACCESS_TOKEN(c14494_0, c14494_1),
oldFormErrors: true,
rejectWithError: rejectWithMigratedError()
})).body.access_token;
Dispatcher.dispatch({
type: "USER_CONNECTION_UPDATE",
platformType: c14494_0,
id: c14494_1,
accessToken: c29446_0
});
r74 = c29446_0;
c25308_3 = 0;
} catch ($e) {
const r29 = $e;
let r8 = r29;
c25308_2 = r29;
if (c25308_3 !== 0) {
while (true) {
try {
const r83 = c25308_2;
c25308_3 = 0;
c29446_1 = r83;
if (c29446_1.body.code === AbortCodes.CONNECTION_REVOKED) {
Dispatcher.dispatch({
type: "USER_CONNECTION_UPDATE",
platformType: c14494_0,
id: c14494_1,
revoked: true
});
}
throw c29446_1;
} catch (r79) {
r8 = r79;
c25308_2 = r79;
if (c25308_3 === 0) {
break;
}
}
}
}
throw r8;
}
return r74;
},
linkDispatchAuthCallback: (a0, a1) => HTTP.post({
url: Endpoints.CONNECTIONS_LINK_DISPATCH_AUTH_CALLBACK(a0),
body: {
...a1
},
oldFormErrors: true,
rejectWithError: rejectWithMigratedError()
}),
completeTwoWayLink: async (c14495_0, c14495_1, code, state, token_redirect_uri) => {
let r57;
L14: {
if (c14495_1 != null) {
const callbackParamsFromURL = getCallbackParamsFromURL(c14495_1);
const { code: code2, error, errorDescription } = callbackParamsFromURL;
if (error == null) {
r57 = await callback(c14495_0, {
code,
state,
two_way_link_code: code2,
token_redirect_uri
});
break L14;
}
c3004_9.error("Two-way link: missing authorize code", {
error,
errorDescription
});
} else {
c3004_9.error("Two-way link: missing authorize location");
}
return void 0;
}
return r57;
},
sessionHandoff: function sessionHandoff(a0, a1, a2, a3, a4) {
return HTTP.post({
url: Endpoints.CONNECTIONS_SESSION_HANDOFF(a0),
body: {
state: a1,
code: a2,
openid_params: a3,
iss: a4
},
oldFormErrors: true,
rejectWithError: rejectWithMigratedError()
});
},
getHandoffStatus: function getHandoffStatus(a0, a1) {
const uRLSearchParams = new URLSearchParams();
uRLSearchParams.append("state", a1);
return HTTP.get({
url: `${Endpoints.CONNECTIONS_SESSION_HANDOFF(a0)}?${uRLSearchParams.toString()}`,
body: {
state: a1
},
rejectWithError: true
});
}
};
export default r33;