| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using Grpc.Core;
- using GrpcShared;
- using GrpcShared.DTO.Search;
- using GrpcShared.Interfaces;
- using Microsoft.Net.Http.Headers;
- using Newtonsoft.Json;
- using System.Text;
- using System.Text.Json;
-
- namespace SpotifyService.Services
- {
- public class TrackService : ITrackService
- {
- private readonly IHttpClientFactory _httpClientFactory;
-
-
- public TrackService(IHttpClientFactory httpClientFactory)
- {
- _httpClientFactory = httpClientFactory;
- }
-
- public async Task<SearchResponse> ListSearchAsync(SearchRequest request)
- {
- var client = _httpClientFactory.CreateClient("HttpClient");
-
- client.DefaultRequestHeaders.Add(HeaderNames.Authorization, "Bearer " + request.Token );
-
- var searchResult = await client.GetAsync($"search?q={request.Query}&type={request.Type}");
-
- var responses = JsonConvert.DeserializeObject<SearchResponse>(await searchResult.Content.ReadAsStringAsync())!;
-
- return new SearchResponse
- {
- Tracks = responses!.Tracks
- };
-
-
- }
- }
- }
|