Make GetTradeToken() public API

This commit is contained in:
Archi
2022-02-17 10:59:49 +01:00
parent 450f365817
commit 38c2b51f2b

View File

@@ -130,6 +130,37 @@ public sealed class ArchiHandler : ClientMsgHandler {
return body.games.ToDictionary(static game => (uint) game.appid, static game => game.name);
}
[PublicAPI]
public async Task<string?> GetTradeToken() {
if (Client == null) {
throw new InvalidOperationException(nameof(Client));
}
if (!Client.IsConnected) {
return null;
}
CEcon_GetTradeOfferAccessToken_Request request = new();
SteamUnifiedMessages.ServiceMethodResponse response;
try {
response = await UnifiedEconService.SendMessage(x => x.GetTradeOfferAccessToken(request)).ToLongRunningTask().ConfigureAwait(false);
} catch (Exception e) {
ArchiLogger.LogGenericWarningException(e);
return null;
}
if (response.Result != EResult.OK) {
return null;
}
CEcon_GetTradeOfferAccessToken_Response body = response.GetDeserializedResponse<CEcon_GetTradeOfferAccessToken_Response>();
return body.trade_offer_access_token;
}
public override void HandleMsg(IPacketMsg packetMsg) {
ArgumentNullException.ThrowIfNull(packetMsg);
@@ -401,36 +432,6 @@ public sealed class ArchiHandler : ClientMsgHandler {
return body.privacy_settings;
}
internal async Task<string?> GetTradeToken() {
if (Client == null) {
throw new InvalidOperationException(nameof(Client));
}
if (!Client.IsConnected) {
return null;
}
CEcon_GetTradeOfferAccessToken_Request request = new();
SteamUnifiedMessages.ServiceMethodResponse response;
try {
response = await UnifiedEconService.SendMessage(x => x.GetTradeOfferAccessToken(request)).ToLongRunningTask().ConfigureAwait(false);
} catch (Exception e) {
ArchiLogger.LogGenericWarningException(e);
return null;
}
if (response.Result != EResult.OK) {
return null;
}
CEcon_GetTradeOfferAccessToken_Response body = response.GetDeserializedResponse<CEcon_GetTradeOfferAccessToken_Response>();
return body.trade_offer_access_token;
}
internal async Task<string?> GetTwoFactorDeviceIdentifier(ulong steamID) {
if ((steamID == 0) || !new SteamID(steamID).IsIndividualAccount) {
throw new ArgumentOutOfRangeException(nameof(steamID));