FIFAModel.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System.Text.Json;
  2. namespace economy.Models.FIFA
  3. {
  4. public class FIFAModel
  5. {
  6. private readonly FIFA_API _fifaAPI;
  7. public FIFAModel(FIFA_API fifaAPI)
  8. {
  9. _fifaAPI = fifaAPI;
  10. }
  11. // FIFA 순위
  12. public async Task<Response> GetRanking(Request request)
  13. {
  14. Response parseData = new();
  15. try
  16. {
  17. var uriBuilder = new UriBuilder(_fifaAPI.APIUrl)
  18. {
  19. Path = "/api/v3/rankings",
  20. Query = $"gender={request.Gender}&count={request.NumOfRows}&language=ko"
  21. };
  22. var response = await _fifaAPI.httpClient.GetAsync(uriBuilder.Uri);
  23. if (response.IsSuccessStatusCode)
  24. {
  25. var jsonString = await response.Content.ReadAsStringAsync();
  26. parseData = JsonSerializer.Deserialize<Response>(jsonString);
  27. if (parseData is null)
  28. {
  29. return new Response();
  30. }
  31. }
  32. response.EnsureSuccessStatusCode();
  33. }
  34. catch (HttpRequestException e)
  35. {
  36. Console.WriteLine($"Request error: {e.Message}");
  37. }
  38. return parseData;
  39. }
  40. }
  41. }