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 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(await searchResult.Content.ReadAsStringAsync())!; return new SearchResponse { Tracks = responses!.Tracks }; } } }