using System.Text.Json; using Microsoft.Extensions.Options; using SWAD.API.Consts.Enums; using SWAD.API.Models.Config.ApiServices; using SWAD.API.Models.JsonStructures.MusicAPI.Spotify; namespace SWAD.API.Services.MusicAPI.Auth; /// public class SpotifyAuthService : AbstractAuthService { public SpotifyAuthService(IOptions data) { ServiceType = MusicService.Spotify; Data = data.Value.ServicesData.First(x => x.Name == ServiceType.ToString()); } public override async Task GetToken() { using var httpClient = new HttpClient(); var content = new Dictionary { { "grant_type", "client_credentials" }, { "client_id", Data.ClientId }, { "client_secret", Data.Secret } }; try { var response = await httpClient.PostAsync(Data.Endpoints.Token, new FormUrlEncodedContent(content)); if (response.IsSuccessStatusCode) { var ans = await JsonSerializer.DeserializeAsync( await response.Content.ReadAsStreamAsync()); return ans; } } catch (Exception) { return null; } return null; } }