Lidarr/src/NzbDrone.Core/Update/UpdatePackageProvider.cs

50 lines
1.6 KiB
C#
Raw Normal View History

2013-04-13 23:57:10 +00:00
using System;
using System.Collections.Generic;
2013-04-13 23:57:10 +00:00
using NzbDrone.Common;
2014-03-08 03:00:18 +00:00
using NzbDrone.Common.EnvironmentInfo;
2013-09-11 06:33:47 +00:00
using RestSharp;
using NzbDrone.Core.Rest;
2013-04-13 23:57:10 +00:00
namespace NzbDrone.Core.Update
{
public interface IUpdatePackageProvider
2013-04-13 23:57:10 +00:00
{
2013-09-11 06:33:47 +00:00
UpdatePackage GetLatestUpdate(string branch, Version currentVersion);
List<UpdatePackage> GetRecentUpdates(string branch);
2013-04-13 23:57:10 +00:00
}
public class UpdatePackageProvider : IUpdatePackageProvider
2013-04-13 23:57:10 +00:00
{
2013-09-11 06:33:47 +00:00
public UpdatePackage GetLatestUpdate(string branch, Version currentVersion)
2013-04-13 23:57:10 +00:00
{
2014-07-20 11:36:31 +00:00
var restClient = RestClientFactory.BuildClient(Services.RootUrl);
2013-04-13 23:57:10 +00:00
2013-09-11 06:33:47 +00:00
var request = new RestRequest("/v1/update/{branch}");
request.AddParameter("version", currentVersion);
request.AddParameter("os", OsInfo.Os.ToString().ToLowerInvariant());
2013-09-11 06:33:47 +00:00
request.AddUrlSegment("branch", branch);
var update = restClient.ExecuteAndValidate<UpdatePackageAvailable>(request);
2013-04-13 23:57:10 +00:00
2013-08-24 02:21:12 +00:00
if (!update.Available) return null;
2013-04-13 23:57:10 +00:00
2013-08-24 02:21:12 +00:00
return update.UpdatePackage;
}
public List<UpdatePackage> GetRecentUpdates(string branch)
{
2014-07-20 11:36:31 +00:00
var restClient = RestClientFactory.BuildClient(Services.RootUrl);
var request = new RestRequest("/v1/update/{branch}/changes");
2014-03-08 03:00:18 +00:00
request.AddParameter("majorVersion", BuildInfo.Version.Major);
request.AddParameter("os", OsInfo.Os.ToString().ToLowerInvariant());
request.AddUrlSegment("branch", branch);
var updates = restClient.ExecuteAndValidate<List<UpdatePackage>>(request);
return updates;
}
2013-04-13 23:57:10 +00:00
}
}