mirror of
https://github.com/Cleanuparr/Cleanuparr.git
synced 2026-09-13 05:47:33 -04:00
31 lines
1.0 KiB
C#
31 lines
1.0 KiB
C#
using Cleanuparr.Domain.Enums;
|
|
using Cleanuparr.Infrastructure.Features.Arr.Interfaces;
|
|
using Cleanuparr.Infrastructure.Features.LazyLibrarian;
|
|
using Cleanuparr.Persistence.Models.Configuration.Arr;
|
|
|
|
namespace Cleanuparr.Infrastructure.Health;
|
|
|
|
public sealed class InstanceHealthChecker : IInstanceHealthChecker
|
|
{
|
|
private readonly IArrClientFactory _arrClientFactory;
|
|
private readonly ILazyLibrarianService _lazyLibrarianService;
|
|
|
|
public InstanceHealthChecker(IArrClientFactory arrClientFactory, ILazyLibrarianService lazyLibrarianService)
|
|
{
|
|
_arrClientFactory = arrClientFactory;
|
|
_lazyLibrarianService = lazyLibrarianService;
|
|
}
|
|
|
|
public async Task CheckAsync(InstanceType type, ArrInstance instance)
|
|
{
|
|
if (type is InstanceType.LazyLibrarian)
|
|
{
|
|
await _lazyLibrarianService.HealthCheckAsync(instance);
|
|
return;
|
|
}
|
|
|
|
IArrClient client = _arrClientFactory.GetClient(type, instance.Version);
|
|
await client.HealthCheckAsync(instance);
|
|
}
|
|
}
|