aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Sync/SyncService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/Sync/SyncService.cs')
-rw-r--r--MediaBrowser.Api/Sync/SyncService.cs30
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);