using System.Collections.Generic; using System.Linq; using Microsoft.AspNetCore.Mvc; using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Core.Update; using Prowlarr.Http; namespace Prowlarr.Api.V1.Update { [V1ApiController] public class UpdateController : Controller { private readonly IRecentUpdateProvider _recentUpdateProvider; public UpdateController(IRecentUpdateProvider recentUpdateProvider) { _recentUpdateProvider = recentUpdateProvider; } [HttpGet] public List GetRecentUpdates() { var resources = _recentUpdateProvider.GetRecentUpdatePackages() .OrderByDescending(u => u.Version) .ToResource(); if (resources.Any()) { var first = resources.First(); first.Latest = true; if (first.Version > BuildInfo.Version) { first.Installable = true; } var installed = resources.SingleOrDefault(r => r.Version == BuildInfo.Version); if (installed != null) { installed.Installed = true; } } return resources; } } }