SyncService.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. using MediaBrowser.Controller.Net;
  2. using MediaBrowser.Controller.Sync;
  3. using MediaBrowser.Model.Querying;
  4. using MediaBrowser.Model.Sync;
  5. using ServiceStack;
  6. using System.Threading.Tasks;
  7. namespace MediaBrowser.Api.Sync
  8. {
  9. [Route("/Sync/Jobs/{Id}", "DELETE", Summary = "Cancels a sync job.")]
  10. public class CancelSyncJob : IReturnVoid
  11. {
  12. [ApiMember(Name = "Id", Description = "Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
  13. public string Id { get; set; }
  14. }
  15. [Route("/Sync/Schedules/{Id}", "DELETE", Summary = "Cancels a sync job.")]
  16. public class CancelSyncSchedule : IReturnVoid
  17. {
  18. [ApiMember(Name = "Id", Description = "Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
  19. public string Id { get; set; }
  20. }
  21. [Route("/Sync/Jobs/{Id}", "GET", Summary = "Gets a sync job.")]
  22. public class GetSyncJob : IReturn<SyncJob>
  23. {
  24. [ApiMember(Name = "Id", Description = "Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
  25. public string Id { get; set; }
  26. }
  27. [Route("/Sync/Schedules/{Id}", "GET", Summary = "Gets a sync job.")]
  28. public class GetSyncSchedule : IReturn<SyncSchedule>
  29. {
  30. [ApiMember(Name = "Id", Description = "Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
  31. public string Id { get; set; }
  32. }
  33. [Route("/Sync/Jobs", "GET", Summary = "Gets sync jobs.")]
  34. public class GetSyncJobs : IReturn<QueryResult<SyncJob>>
  35. {
  36. }
  37. [Route("/Sync/Schedules", "GET", Summary = "Gets sync schedules.")]
  38. public class GetSyncSchedules : IReturn<QueryResult<SyncSchedule>>
  39. {
  40. }
  41. [Authenticated]
  42. public class SyncService : BaseApiService
  43. {
  44. private readonly ISyncManager _syncManager;
  45. public SyncService(ISyncManager syncManager)
  46. {
  47. _syncManager = syncManager;
  48. }
  49. public object Get(GetSyncJobs request)
  50. {
  51. var result = _syncManager.GetJobs(new SyncJobQuery
  52. {
  53. });
  54. return ToOptimizedResult(result);
  55. }
  56. public object Get(GetSyncSchedules request)
  57. {
  58. var result = _syncManager.GetSchedules(new SyncScheduleQuery
  59. {
  60. });
  61. return ToOptimizedResult(result);
  62. }
  63. public object Get(GetSyncJob request)
  64. {
  65. var result = _syncManager.GetJob(request.Id);
  66. return ToOptimizedResult(result);
  67. }
  68. public object Get(GetSyncSchedule request)
  69. {
  70. var result = _syncManager.GetSchedule(request.Id);
  71. return ToOptimizedResult(result);
  72. }
  73. public void Delete(CancelSyncJob request)
  74. {
  75. var task = _syncManager.CancelJob(request.Id);
  76. Task.WaitAll(task);
  77. }
  78. public void Delete(CancelSyncSchedule request)
  79. {
  80. var task = _syncManager.CancelSchedule(request.Id);
  81. Task.WaitAll(task);
  82. }
  83. }
  84. }