diff options
| author | Eric Reed <ebr@mediabrowser3.com> | 2013-11-04 13:16:47 -0500 |
|---|---|---|
| committer | Eric Reed <ebr@mediabrowser3.com> | 2013-11-04 13:16:47 -0500 |
| commit | 764e2625bf22ffbd373741d77c5700616235d4d4 (patch) | |
| tree | 4dcb6e9cd48860ad52e49a731f11d4710858a317 /MediaBrowser.Api/PackageService.cs | |
| parent | 4bbe8acb5cfc5c4a0c392db71d2858589c8f345f (diff) | |
Implement plugin update identification by guid
Diffstat (limited to 'MediaBrowser.Api/PackageService.cs')
| -rw-r--r-- | MediaBrowser.Api/PackageService.cs | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/MediaBrowser.Api/PackageService.cs b/MediaBrowser.Api/PackageService.cs index 0c6ee20f7..b152f0202 100644 --- a/MediaBrowser.Api/PackageService.cs +++ b/MediaBrowser.Api/PackageService.cs @@ -15,7 +15,7 @@ namespace MediaBrowser.Api /// Class GetPackage /// </summary> [Route("/Packages/{Name}", "GET")] - [Api(("Gets a package, by name"))] + [Api(("Gets a package, by name or assembly guid"))] public class GetPackage : IReturn<PackageInfo> { /// <summary> @@ -24,6 +24,13 @@ namespace MediaBrowser.Api /// <value>The name.</value> [ApiMember(Name = "Name", Description = "The name of the package", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] public string Name { get; set; } + + /// <summary> + /// Gets or sets the name. + /// </summary> + /// <value>The name.</value> + [ApiMember(Name = "AssemblyGuid", Description = "The guid of the associated assembly", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] + public string AssemblyGuid { get; set; } } /// <summary> @@ -77,6 +84,13 @@ namespace MediaBrowser.Api public string Name { get; set; } /// <summary> + /// Gets or sets the name. + /// </summary> + /// <value>The name.</value> + [ApiMember(Name = "AssemblyGuid", Description = "Guid of the associated assembly", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "POST")] + public string AssemblyGuid { get; set; } + + /// <summary> /// Gets or sets the version. /// </summary> /// <value>The version.</value> @@ -157,7 +171,8 @@ namespace MediaBrowser.Api { var packages = _installationManager.GetAvailablePackages(CancellationToken.None, applicationVersion: _appHost.ApplicationVersion).Result; - var result = packages.FirstOrDefault(p => p.name.Equals(request.Name, StringComparison.OrdinalIgnoreCase)); + var result = packages.FirstOrDefault(p => string.Equals(p.guid, request.AssemblyGuid ?? "none", StringComparison.OrdinalIgnoreCase)) + ?? packages.FirstOrDefault(p => p.name.Equals(request.Name, StringComparison.OrdinalIgnoreCase)); return ToOptimizedResult(result); } @@ -194,8 +209,8 @@ namespace MediaBrowser.Api public void Post(InstallPackage request) { var package = string.IsNullOrEmpty(request.Version) ? - _installationManager.GetLatestCompatibleVersion(request.Name, _appHost.ApplicationVersion, request.UpdateClass).Result : - _installationManager.GetPackage(request.Name, request.UpdateClass, Version.Parse(request.Version)).Result; + _installationManager.GetLatestCompatibleVersion(request.Name, request.AssemblyGuid, _appHost.ApplicationVersion, request.UpdateClass).Result : + _installationManager.GetPackage(request.Name, request.AssemblyGuid, request.UpdateClass, Version.Parse(request.Version)).Result; if (package == null) { |
