find working plex connection on startup (#438)

This commit is contained in:
Jason Dove
2021-10-16 11:55:54 -05:00
committed by GitHub
parent 67761c1a14
commit 1a68dd040a
7 changed files with 126 additions and 66 deletions
@@ -6,6 +6,12 @@ namespace ErsatzTV.Infrastructure.Plex
{
public interface IPlexServerApi
{
[Get("/")]
[Headers("Accept: application/json")]
public Task Ping(
[Query] [AliasAs("X-Plex-Token")]
string token);
[Get("/library/sections")]
[Headers("Accept: application/json")]
public Task<PlexMediaContainerResponse<PlexMediaContainerDirectoryContent<PlexLibraryResponse>>> GetLibraries(
@@ -30,6 +30,28 @@ namespace ErsatzTV.Infrastructure.Plex
_logger = logger;
}
public async Task<bool> Ping(
PlexConnection connection,
PlexServerAuthToken token)
{
try
{
IPlexServerApi service = RestService.For<IPlexServerApi>(
new HttpClient
{
BaseAddress = new Uri(connection.Uri),
Timeout = TimeSpan.FromSeconds(5)
});
await service.Ping(token.AuthToken);
return true;
}
catch (Exception)
{
return false;
}
}
public async Task<Either<BaseError, List<PlexLibrary>>> GetLibraries(
PlexConnection connection,
PlexServerAuthToken token)