aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/ItemUpdateService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/ItemUpdateService.cs')
-rw-r--r--MediaBrowser.Api/ItemUpdateService.cs41
1 files changed, 38 insertions, 3 deletions
diff --git a/MediaBrowser.Api/ItemUpdateService.cs b/MediaBrowser.Api/ItemUpdateService.cs
index 10149906c..95876f1a5 100644
--- a/MediaBrowser.Api/ItemUpdateService.cs
+++ b/MediaBrowser.Api/ItemUpdateService.cs
@@ -3,6 +3,7 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using ServiceStack.ServiceHost;
@@ -13,6 +14,14 @@ using System.Threading.Tasks;
namespace MediaBrowser.Api
{
+ [Route("/LiveTv/Channels/{ChannelId}", "POST")]
+ [Api(("Updates an item"))]
+ public class UpdateChannel : BaseItemDto, IReturnVoid
+ {
+ [ApiMember(Name = "ChannelId", Description = "The id of the channel", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")]
+ public string ChannelId { get; set; }
+ }
+
[Route("/Items/{ItemId}", "POST")]
[Api(("Updates an item"))]
public class UpdateItem : BaseItemDto, IReturnVoid
@@ -73,11 +82,13 @@ namespace MediaBrowser.Api
{
private readonly ILibraryManager _libraryManager;
private readonly IDtoService _dtoService;
+ private readonly ILiveTvManager _liveTv;
- public ItemUpdateService(ILibraryManager libraryManager, IDtoService dtoService)
+ public ItemUpdateService(ILibraryManager libraryManager, IDtoService dtoService, ILiveTvManager liveTv)
{
_libraryManager = libraryManager;
_dtoService = dtoService;
+ _liveTv = liveTv;
}
public void Post(UpdateItem request)
@@ -87,6 +98,13 @@ namespace MediaBrowser.Api
Task.WaitAll(task);
}
+ public void Post(UpdateChannel request)
+ {
+ var task = UpdateItem(request);
+
+ Task.WaitAll(task);
+ }
+
private Task UpdateItem(UpdateItem request)
{
var item = _dtoService.GetItemByDtoId(request.ItemId);
@@ -112,6 +130,15 @@ namespace MediaBrowser.Api
await _libraryManager.UpdateItem(item, ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false);
}
+ private async Task UpdateItem(UpdateChannel request)
+ {
+ var item = _liveTv.GetChannel(request.Id);
+
+ UpdateItem(request, item);
+
+ await _libraryManager.UpdateItem(item, ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false);
+ }
+
public void Post(UpdateArtist request)
{
var task = UpdateItem(request);
@@ -226,8 +253,16 @@ namespace MediaBrowser.Api
item.Overview = request.Overview;
item.Genres = request.Genres;
item.Tags = request.Tags;
- item.Studios = request.Studios.Select(x => x.Name).ToList();
- item.People = request.People.Select(x => new PersonInfo { Name = x.Name, Role = x.Role, Type = x.Type }).ToList();
+
+ if (request.Studios != null)
+ {
+ item.Studios = request.Studios.Select(x => x.Name).ToList();
+ }
+
+ if (request.People != null)
+ {
+ item.People = request.People.Select(x => new PersonInfo { Name = x.Name, Role = x.Role, Type = x.Type }).ToList();
+ }
if (request.DateCreated.HasValue)
{