diff options
Diffstat (limited to 'MediaBrowser.Api/Sync/SyncService.cs')
| -rw-r--r-- | MediaBrowser.Api/Sync/SyncService.cs | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/MediaBrowser.Api/Sync/SyncService.cs b/MediaBrowser.Api/Sync/SyncService.cs index bcadb4c08..d5f88e6a4 100644 --- a/MediaBrowser.Api/Sync/SyncService.cs +++ b/MediaBrowser.Api/Sync/SyncService.cs @@ -65,6 +65,16 @@ namespace MediaBrowser.Api.Sync public string Id { get; set; } } + [Route("/Sync/{TargetId}/Items", "DELETE", Summary = "Cancels items from a sync target")] + public class CancelItems : IReturnVoid + { + [ApiMember(Name = "TargetId", Description = "TargetId", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "Items")] + public string TargetId { get; set; } + + [ApiMember(Name = "ItemIds", Description = "ItemIds", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "Items")] + public string ItemIds { get; set; } + } + [Route("/Sync/Jobs", "GET", Summary = "Gets sync jobs.")] public class GetSyncJobs : SyncJobQuery, IReturn<QueryResult<SyncJob>> { @@ -200,6 +210,15 @@ namespace MediaBrowser.Api.Sync return ToOptimizedResult(result); } + public void Delete(CancelItems request) + { + var itemIds = request.ItemIds.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + + var task = _syncManager.CancelItems(request.TargetId, itemIds); + + Task.WaitAll(task); + } + public void Post(ReportSyncJobItemTransferred request) { var task = _syncManager.ReportSyncJobItemTransferred(request.Id); @@ -229,6 +248,9 @@ namespace MediaBrowser.Api.Sync result.Targets = _syncManager.GetSyncTargets(request.UserId) .ToList(); + var auth = AuthorizationContext.GetAuthorizationInfo(Request); + var authenticatedUser = _userManager.GetUserById(auth.UserId); + if (!string.IsNullOrWhiteSpace(request.TargetId)) { result.Targets = result.Targets @@ -236,11 +258,11 @@ namespace MediaBrowser.Api.Sync .ToList(); result.QualityOptions = _syncManager - .GetQualityOptions(request.TargetId) + .GetQualityOptions(request.TargetId, authenticatedUser) .ToList(); result.ProfileOptions = _syncManager - .GetProfileOptions(request.TargetId) + .GetProfileOptions(request.TargetId, authenticatedUser) .ToList(); } @@ -258,10 +280,6 @@ namespace MediaBrowser.Api.Sync } }; - var auth = AuthorizationContext.GetAuthorizationInfo(Request); - - var authenticatedUser = _userManager.GetUserById(auth.UserId); - var items = request.ItemIds.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Select(_libraryManager.GetItemById) .Where(i => i != null); |
