|
@@ -1,11 +1,10 @@
|
|
|
using System.Net.Http.Json;
|
|
|
using System.Text.Json;
|
|
|
using RestSharp;
|
|
|
-using RestSharp.Authenticators;
|
|
|
|
|
|
namespace Tr.Sdk;
|
|
|
|
|
|
-public partial class TrClient : ITrClient, IDisposable
|
|
|
+public class TrClient : ITrClient, IDisposable
|
|
|
{
|
|
|
private readonly RestClient _client;
|
|
|
|
|
@@ -13,7 +12,7 @@ public partial class TrClient : ITrClient, IDisposable
|
|
|
{
|
|
|
var options = new RestClientOptions(baseUrl)
|
|
|
{
|
|
|
- Authenticator = new TrAuthenticator()
|
|
|
+ Authenticator = new TrAuthenticator(baseUrl, apiKey, apiSecret)
|
|
|
};
|
|
|
_client = new RestClient(options);
|
|
|
}
|
|
@@ -26,23 +25,23 @@ public partial class TrClient : ITrClient, IDisposable
|
|
|
/// <param name="request"></param>
|
|
|
/// <param name="cancellationToken"></param>
|
|
|
/// <returns></returns>
|
|
|
- public async Task<TResponse?> ExecuteAsync<TRequest, TResponse>(TRequest request, CancellationToken cancellationToken)
|
|
|
+ public async Task<TResponse> ExecuteAsync<TRequest, TResponse>(TRequest request, CancellationToken cancellationToken)
|
|
|
where TRequest : TrRequest
|
|
|
{
|
|
|
- var req = new RestRequest(request.Path(), request.Method())
|
|
|
+ var req = new RestRequest(request.Path(), request.HttpMethod())
|
|
|
.AddObject(request);
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var response = await _client.ExecuteAsync<TResponse>(req, cancellationToken);
|
|
|
+ if (!response?.IsSuccessful ?? false)
|
|
|
+ throw new HttpRequestException($"请求呼叫中心服务失败, HttpCode: {response.StatusCode}, Error: {response.ErrorMessage}");
|
|
|
|
|
|
- var response = await _client.ExecuteAsync<TResponse>(req, cancellationToken);
|
|
|
- if (!response.IsSuccessful)
|
|
|
+ return response.Data;
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
{
|
|
|
- throw new HttpRequestException($"请求呼叫中心服务失败, HttpCode: {response.StatusCode}, Error: {response.ErrorMessage}");
|
|
|
+ throw new HttpRequestException($"呼叫中心请求失败,Error: {e.Message}");
|
|
|
}
|
|
|
- return response.Data;
|
|
|
- }
|
|
|
-
|
|
|
- public async Task<string> GetTokenAsync(TokenRequest request, CancellationToken cancellationToken)
|
|
|
- {
|
|
|
- throw new NotImplementedException();
|
|
|
}
|
|
|
|
|
|
/// <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
|
|
@@ -51,17 +50,4 @@ public partial class TrClient : ITrClient, IDisposable
|
|
|
_client?.Dispose();
|
|
|
GC.SuppressFinalize(this);
|
|
|
}
|
|
|
-}
|
|
|
-
|
|
|
-public class TrAuthenticator : AuthenticatorBase
|
|
|
-{
|
|
|
- public TrAuthenticator() : base("")
|
|
|
- {
|
|
|
- }
|
|
|
-
|
|
|
- protected override async ValueTask<Parameter> GetAuthenticationParameter(string accessToken)
|
|
|
- {
|
|
|
- Token = string.IsNullOrEmpty(Token) ? "8352d42165d7cf6821e53e926d66adba54c309e6" : Token;
|
|
|
- return new HeaderParameter("X-Auth-Token", Token);
|
|
|
- }
|
|
|
}
|