aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api')
-rw-r--r--MediaBrowser.Api/LiveTv/LiveTvService.cs62
1 files changed, 61 insertions, 1 deletions
diff --git a/MediaBrowser.Api/LiveTv/LiveTvService.cs b/MediaBrowser.Api/LiveTv/LiveTvService.cs
index 24d76c0d2..e7b348eb7 100644
--- a/MediaBrowser.Api/LiveTv/LiveTvService.cs
+++ b/MediaBrowser.Api/LiveTv/LiveTvService.cs
@@ -73,6 +73,12 @@ namespace MediaBrowser.Api.LiveTv
public string Id { get; set; }
}
+ [Route("/LiveTv/Timers/Defaults", "GET")]
+ [Api(Description = "Gets default values for a new timer")]
+ public class GetDefaultTimer : IReturn<TimerInfoDto>
+ {
+ }
+
[Route("/LiveTv/Timers", "GET")]
[Api(Description = "Gets live tv timers")]
public class GetTimers : IReturn<QueryResult<TimerInfoDto>>
@@ -92,6 +98,18 @@ namespace MediaBrowser.Api.LiveTv
public string UserId { get; set; }
}
+ [Route("/LiveTv/Programs/{Id}", "GET")]
+ [Api(Description = "Gets a live tv program")]
+ public class GetProgram : IReturn<ProgramInfoDto>
+ {
+ [ApiMember(Name = "Id", Description = "Program Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
+ public string Id { get; set; }
+
+ [ApiMember(Name = "UserId", Description = "Optional attach user data.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
+ public string UserId { get; set; }
+ }
+
+
[Route("/LiveTv/Recordings/{Id}", "DELETE")]
[Api(Description = "Deletes a live tv recording")]
public class DeleteRecording : IReturnVoid
@@ -114,6 +132,12 @@ namespace MediaBrowser.Api.LiveTv
{
}
+ [Route("/LiveTv/Timers", "POST")]
+ [Api(Description = "Creates a live tv timer")]
+ public class CreateTimer : TimerInfoDto, IReturnVoid
+ {
+ }
+
[Route("/LiveTv/SeriesTimers/{Id}", "GET")]
[Api(Description = "Gets a live tv series timer")]
public class GetSeriesTimer : IReturn<TimerInfoDto>
@@ -142,6 +166,12 @@ namespace MediaBrowser.Api.LiveTv
{
}
+ [Route("/LiveTv/SeriesTimers", "POST")]
+ [Api(Description = "Creates a live tv series timer")]
+ public class CreateSeriesTimer : SeriesTimerInfoDto, IReturnVoid
+ {
+ }
+
public class LiveTvService : BaseApiService
{
private readonly ILiveTvManager _liveTvManager;
@@ -266,7 +296,7 @@ namespace MediaBrowser.Api.LiveTv
public object Get(GetSeriesTimers request)
{
var result = _liveTvManager.GetSeriesTimers(new SeriesTimerQuery
- {
+ {
}, CancellationToken.None).Result;
@@ -293,5 +323,35 @@ namespace MediaBrowser.Api.LiveTv
Task.WaitAll(task);
}
+
+ public object Get(GetDefaultTimer request)
+ {
+ var result = _liveTvManager.GetNewTimerDefaults(CancellationToken.None).Result;
+
+ return ToOptimizedResult(result);
+ }
+
+ public object Get(GetProgram request)
+ {
+ var user = string.IsNullOrEmpty(request.UserId) ? null : _userManager.GetUserById(new Guid(request.UserId));
+
+ var result = _liveTvManager.GetProgram(request.Id, CancellationToken.None, user).Result;
+
+ return ToOptimizedResult(result);
+ }
+
+ public void Post(CreateSeriesTimer request)
+ {
+ var task = _liveTvManager.CreateSeriesTimer(request, CancellationToken.None);
+
+ Task.WaitAll(task);
+ }
+
+ public void Post(CreateTimer request)
+ {
+ var task = _liveTvManager.CreateTimer(request, CancellationToken.None);
+
+ Task.WaitAll(task);
+ }
}
} \ No newline at end of file