diff options
Diffstat (limited to 'MediaBrowser.Api/PackageService.cs')
| -rw-r--r-- | MediaBrowser.Api/PackageService.cs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/MediaBrowser.Api/PackageService.cs b/MediaBrowser.Api/PackageService.cs index 742e26bc0..c80841a9a 100644 --- a/MediaBrowser.Api/PackageService.cs +++ b/MediaBrowser.Api/PackageService.cs @@ -30,7 +30,7 @@ namespace MediaBrowser.Api /// Class GetPackages /// </summary> [Route("/Packages", "GET")] - [ServiceStack.ServiceHost.Api(("Gets available packages"))] + [Api(("Gets available packages"))] public class GetPackages : IReturn<List<PackageInfo>> { /// <summary> @@ -39,13 +39,16 @@ namespace MediaBrowser.Api /// <value>The name.</value> [ApiMember(Name = "PackageType", Description = "Optional package type filter (System/UserInstalled)", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] public PackageType? PackageType { get; set; } + + [ApiMember(Name = "Applications", Description = "Optional. Filter by target system type. Allows multiple, comma delimited.", IsRequired = false, DataType = "string", ParameterType = "path", Verb = "GET", AllowMultiple = true)] + public string Applications { get; set; } } /// <summary> /// Class GetPackageVersionUpdates /// </summary> [Route("/Packages/Updates", "GET")] - [ServiceStack.ServiceHost.Api(("Gets available package updates for currently installed packages"))] + [Api(("Gets available package updates for currently installed packages"))] public class GetPackageVersionUpdates : IReturn<List<PackageVersionInfo>> { /// <summary> @@ -60,7 +63,7 @@ namespace MediaBrowser.Api /// Class InstallPackage /// </summary> [Route("/Packages/Installed/{Name}", "POST")] - [ServiceStack.ServiceHost.Api(("Installs a package"))] + [Api(("Installs a package"))] public class InstallPackage : IReturnVoid { /// <summary> @@ -89,7 +92,7 @@ namespace MediaBrowser.Api /// Class CancelPackageInstallation /// </summary> [Route("/Packages/Installing/{Id}", "DELETE")] - [ServiceStack.ServiceHost.Api(("Cancels a package installation"))] + [Api(("Cancels a package installation"))] public class CancelPackageInstallation : IReturnVoid { /// <summary> @@ -165,6 +168,13 @@ namespace MediaBrowser.Api { var packages = _installationManager.GetAvailablePackages(CancellationToken.None, request.PackageType, _appHost.ApplicationVersion).Result; + if (!string.IsNullOrEmpty(request.Applications)) + { + var apps = request.Applications.Split(',').Select(i => (PackageTargetSystem)Enum.Parse(typeof(PackageTargetSystem), i, true)); + + packages = packages.Where(p => apps.Contains(p.targetSystem)); + } + return ToOptimizedResult(packages.ToList()); } |
