Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public async Task<object> GetAsync<T>(string uri, NamingStrategy namingStrategy)
- {
- using (var requestMessage = new HttpRequestMessage(HttpMethod.Get, uri))
- {
- return await ProcessAsync<T>(requestMessage, namingStrategy);
- }
- }
- public async Task<object> ProcessAsync<T>(HttpRequestMessage request, NamingStrategy namingStrategy)
- {
- if (!string.IsNullOrEmpty(AuthToken))
- {
- request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", AuthToken);
- }
- HttpResponseMessage response = await _client.SendAsync(request);
- if (response.IsSuccessStatusCode)
- {
- _logger.LogInformation("Request Succeeded");
- var dezerializerSettings = new JsonSerializerSettings
- {
- ContractResolver = new DefaultContractResolver
- {
- NamingStrategy = namingStrategy
- }
- };
- T responseModel = JsonConvert.DeserializeObject<T>(await response.Content.ReadAsStringAsync(), dezerializerSettings);
- return responseModel;
- }
- else
- {
- return await GetFailureResponseModel(response);
- }
- }
- public async Task<object> GetShops(string category)
- {
- _logger.LogInformation("ClubMatas outgoing request: {RequestName}", nameof(GetShops));
- return await _client.GetAsync<ShopsResponseModel>($"v2/shops?category={WebUtility.UrlEncode(category)}");
- }
- public async Task<ActionResult<object>> GetShops([FromQuery(Name = "category")]string category)
- {
- var response = await _httpClient.GetShops(category);
- return ParseResponse<ShopsResponseModel>(response);
- }
- protected ActionResult<object> ParseResponse<T>(object response)
- {
- if (response.GetType() == typeof(T))
- {
- return Ok(response);
- }
- else
- {
- return Error(response);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement