private async Task <HttpResponseMessage> Invoke( HttpMethod httpMethod, string path, SdkAuthorization authorization, HttpContent httpContent, CancellationToken cancellationToken, string idempotencyKey) { CheckoutUtils.ValidateParams("httpMethod", httpMethod, "authorization", authorization); var httpRequest = new HttpRequestMessage(httpMethod, path) { Content = httpContent }; _log.LogInformation(@"{HttpMethod}: {Path}", httpMethod, path); httpRequest.Headers.UserAgent.ParseAdd( "checkout-sdk-net/" + CheckoutUtils.GetAssemblyVersion <CheckoutSdk>()); httpRequest.Headers.TryAddWithoutValidation("Authorization", authorization.GetAuthorizationHeader()); if (!string.IsNullOrWhiteSpace(idempotencyKey)) { httpRequest.Headers.Add("Cko-Idempotency-Key", idempotencyKey); } return(await _httpClient.SendAsync(httpRequest, cancellationToken)); }
public ApiClient(IHttpClientFactory httpClientFactory, Uri baseUri) { CheckoutUtils.ValidateParams("httpClientFactory", httpClientFactory, "baseUri", baseUri); var httpClient = httpClientFactory.CreateClient(); httpClient.BaseAddress = baseUri; _httpClient = httpClient; }
public CheckoutOAuthSdkBuilder Scopes(params OAuthScope[] scopes) { CheckoutUtils.ValidateParams("scopes", scopes); foreach (var scope in scopes) { _scopes.Add(scope); } return(this); }
public OAuthSdkCredentials( IHttpClientFactory httpClientFactory, Uri authorizationUri, string clientId, string clientSecret, ISet <OAuthScope> scopes) : base(PlatformType.DefaultOAuth) { CheckoutUtils.ValidateParams( "httpClientFactory", httpClientFactory, "authorizationUri", authorizationUri, "clientId", clientId, "clientSecret", clientSecret, "scopes", scopes); _clientId = clientId; _clientSecret = clientSecret; _scopes = scopes; _httpClient = httpClientFactory.CreateClient(); _httpClient.BaseAddress = authorizationUri; }
private async Task <HttpResponseMessage> SendRequestAsync( HttpMethod httpMethod, string path, SdkAuthorization authorization, object requestBody, CancellationToken cancellationToken, string idempotencyKey) { CheckoutUtils.ValidateParams("httpMethod", httpMethod, "authorization", authorization); HttpContent httpContent = null; if (requestBody != null) { if (requestBody is MultipartFormDataContent content) { httpContent = content; } else { httpContent = new StringContent(_serializer.Serialize(requestBody), Encoding.UTF8, "application/json"); } } HttpResponseMessage httpResponse = await Invoke( httpMethod, path, authorization, httpContent, cancellationToken, idempotencyKey); await ValidateResponseAsync(httpResponse); return(httpResponse); }
public object Deserialize(string payload, Type objectType) { CheckoutUtils.ValidateParams("payload", payload); return(JsonConvert.DeserializeObject(payload, objectType, _serializerSettings)); }
public string Serialize(object payload) { CheckoutUtils.ValidateParams("payload", payload); return(JsonConvert.SerializeObject(payload, _serializerSettings)); }