add basic ability to upload images for items

This commit is contained in:
Luke Pulverenti
2013-05-04 17:20:27 -04:00
parent 055a6eb4cc
commit 00222c8493
6 changed files with 111 additions and 2 deletions

View File

@@ -159,6 +159,25 @@ namespace MediaBrowser.Api.Images
/// <value>The request stream.</value>
public Stream RequestStream { get; set; }
}
[Route("/Items/{Id}/Images/{Type}", "POST")]
[Route("/Items/{Id}/Images/{Type}/{Index}", "POST")]
[Api(Description = "Posts an item image")]
public class PostItemImage : DeleteImageRequest, IRequiresRequestStream, IReturnVoid
{
/// <summary>
/// Gets or sets the id.
/// </summary>
/// <value>The id.</value>
[ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")]
public string Id { get; set; }
/// <summary>
/// The raw Http Request Input Stream
/// </summary>
/// <value>The request stream.</value>
public Stream RequestStream { get; set; }
}
/// <summary>
/// Class ImageService
@@ -288,6 +307,24 @@ namespace MediaBrowser.Api.Images
Task.WaitAll(task);
}
/// <summary>
/// Posts the specified request.
/// </summary>
/// <param name="request">The request.</param>
public void Post(PostItemImage request)
{
var pathInfo = PathInfo.Parse(RequestContext.PathInfo);
var id = new Guid(pathInfo.GetArgumentValue<string>(1));
request.Type = (ImageType)Enum.Parse(typeof(ImageType), pathInfo.GetArgumentValue<string>(3), true);
var item = _libraryManager.GetItemById(id);
var task = PostImage(item, request.RequestStream, request.Type, RequestContext.ContentType);
Task.WaitAll(task);
}
/// <summary>
/// Deletes the specified request.
/// </summary>