| Name | Message | Date |
|---|---|---|
| 📄 packages.lock.json | 9 hours ago | |
| 📄 ServiceCollectionExtensions.cs | 9 hours ago | |
| 📄 Spotify.csproj | 9 hours ago | |
| 📄 SpotifyOptions.cs | 9 hours ago | |
| 📄 SpotifySearchProvider.cs | 9 hours ago |
📄
ServiceCollectionExtensions.cs
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using MSearch.Domain; using SpotifyAPI.Web; using SpotifyAPI.Web.Http; namespace MSearch.SearchProviders.Spotify; public static class ServiceCollectionExtensions { public static IServiceCollection AddSpotifySearchProvider(this IServiceCollection services) { services.AddOptions<SpotifyOptions>().BindConfiguration("SearchProviders:Spotify").ValidateOnStart(); services.AddTransient<IValidateOptions<SpotifyOptions>, SpotifyOptionsValidator>(); services.AddHttpClient<ISpotifyClient, SpotifyClient>( nameof(SpotifyClient), (httpClient, sp) => { var options = sp.GetRequiredService<IOptions<SpotifyOptions>>(); var config = SpotifyClientConfig .CreateDefault() .WithHTTPClient(new NetHttpClient(httpClient)) .WithAuthenticator( new ClientCredentialsAuthenticator(options.Value.ClientId, options.Value.ClientSecret) ); return new SpotifyClient(config); } ); services.AddTransient<ISearchProvider, SpotifySearchProvider>(); return services; } }