diff options
Diffstat (limited to 'MediaBrowser.Api/Social/SharingService.cs')
| -rw-r--r-- | MediaBrowser.Api/Social/SharingService.cs | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/MediaBrowser.Api/Social/SharingService.cs b/MediaBrowser.Api/Social/SharingService.cs deleted file mode 100644 index 4f10667b7..000000000 --- a/MediaBrowser.Api/Social/SharingService.cs +++ /dev/null @@ -1,178 +0,0 @@ -using MediaBrowser.Common.Extensions; -using MediaBrowser.Controller.Dlna; -using MediaBrowser.Controller.Dto; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Net; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Social; -using System; -using System.IO; -using System.Threading.Tasks; -using MediaBrowser.Model.Services; - -namespace MediaBrowser.Api.Social -{ - [Route("/Social/Shares/{Id}", "GET", Summary = "Gets a share")] - [Authenticated] - public class GetSocialShareInfo : IReturn<SocialShareInfo> - { - [ApiMember(Name = "Id", Description = "The id of the item", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] - public string Id { get; set; } - } - - [Route("/Social/Shares/Public/{Id}", "GET", Summary = "Gets a share")] - public class GetPublicSocialShareInfo : IReturn<SocialShareInfo> - { - [ApiMember(Name = "Id", Description = "The id of the item", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] - public string Id { get; set; } - } - - [Route("/Social/Shares/Public/{Id}/Image", "GET", Summary = "Gets a share")] - public class GetShareImage - { - [ApiMember(Name = "Id", Description = "The id of the item", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] - public string Id { get; set; } - } - - [Route("/Social/Shares", "POST", Summary = "Creates a share")] - [Authenticated] - public class CreateShare : IReturn<SocialShareInfo> - { - [ApiMember(Name = "ItemId", Description = "The id of the item", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] - public string ItemId { get; set; } - - [ApiMember(Name = "UserId", Description = "The user id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] - public string UserId { get; set; } - } - - [Route("/Social/Shares/{Id}", "DELETE", Summary = "Deletes a share")] - [Authenticated] - public class DeleteShare : IReturnVoid - { - [ApiMember(Name = "Id", Description = "The id of the item", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "DELETE")] - public string Id { get; set; } - } - - [Route("/Social/Shares/Public/{Id}/Item", "GET", Summary = "Gets a share")] - public class GetSharedLibraryItem - { - [ApiMember(Name = "Id", Description = "The id of the item", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] - public string Id { get; set; } - } - - public class SharingService : BaseApiService - { - private readonly ISharingManager _sharingManager; - private readonly ILibraryManager _libraryManager; - private readonly IDlnaManager _dlnaManager; - private readonly IDtoService _dtoService; - private readonly IHttpResultFactory _resultFactory; - - public SharingService(ISharingManager sharingManager, IDlnaManager dlnaManager, ILibraryManager libraryManager, IDtoService dtoService, IHttpResultFactory resultFactory) - { - _sharingManager = sharingManager; - _dlnaManager = dlnaManager; - _libraryManager = libraryManager; - _dtoService = dtoService; - _resultFactory = resultFactory; - } - - public object Get(GetSocialShareInfo request) - { - var info = _sharingManager.GetShareInfo(request.Id); - - return ToOptimizedResult(info); - } - - public object Get(GetSharedLibraryItem request) - { - var info = _sharingManager.GetShareInfo(request.Id); - - if (info.ExpirationDate <= DateTime.UtcNow) - { - throw new ResourceNotFoundException(); - } - - var item = _libraryManager.GetItemById(info.ItemId); - - var dto = _dtoService.GetBaseItemDto(item, new DtoOptions()); - - return ToOptimizedResult(dto); - } - - public object Get(GetPublicSocialShareInfo request) - { - var info = _sharingManager.GetShareInfo(request.Id); - - if (info.ExpirationDate <= DateTime.UtcNow) - { - throw new ResourceNotFoundException(); - } - - return ToOptimizedResult(info); - } - - public async Task<object> Post(CreateShare request) - { - var info = await _sharingManager.CreateShare(request.ItemId, request.UserId).ConfigureAwait(false); - - return ToOptimizedResult(info); - } - - public void Delete(DeleteShare request) - { - _sharingManager.DeleteShare(request.Id); - } - - public async Task<object> Get(GetShareImage request) - { - var share = _sharingManager.GetShareInfo(request.Id); - - if (share == null) - { - throw new ResourceNotFoundException(); - } - if (share.ExpirationDate <= DateTime.UtcNow) - { - throw new ResourceNotFoundException(); - } - - var item = _libraryManager.GetItemById(share.ItemId); - - var image = item.GetImageInfo(ImageType.Primary, 0); - - if (image != null) - { - if (image.IsLocalFile) - { - return await _resultFactory.GetStaticFileResult(Request, image.Path).ConfigureAwait(false); - } - - try - { - // Don't fail the request over this - var updatedImage = await _libraryManager.ConvertImageToLocal(item, image, 0).ConfigureAwait(false); - return await _resultFactory.GetStaticFileResult(Request, updatedImage.Path).ConfigureAwait(false); - } - catch - { - - } - } - - // Grab a dlna icon if nothing else is available - using (var response = _dlnaManager.GetIcon("logo240.jpg")) - { - using (var ms = new MemoryStream()) - { - response.Stream.CopyTo(ms); - - ms.Position = 0; - var bytes = ms.ToArray(); - return ResultFactory.GetResult(bytes, "image/" + response.Format.ToString().ToLower()); - } - } - - } - } -} |
