aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Social/SharingService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/Social/SharingService.cs')
-rw-r--r--MediaBrowser.Api/Social/SharingService.cs178
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());
- }
- }
-
- }
- }
-}