2
0

ConnectService.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System.Threading.Tasks;
  2. using MediaBrowser.Controller.Connect;
  3. using MediaBrowser.Controller.Net;
  4. using ServiceStack;
  5. namespace MediaBrowser.Api
  6. {
  7. [Route("/Users/{Id}/Connect/Info", "GET", Summary = "Gets connect info for a user")]
  8. public class GetConnectUserInfo : IReturn<ConnectUserLink>
  9. {
  10. [ApiMember(Name = "Id", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "GET")]
  11. public string Id { get; set; }
  12. }
  13. [Route("/Users/{Id}/Connect/Link", "POST", Summary = "Creates a Connect link for a user")]
  14. public class CreateConnectLink : IReturn<ConnectUserLink>
  15. {
  16. [ApiMember(Name = "Id", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")]
  17. public string Id { get; set; }
  18. [ApiMember(Name = "ConnectUsername", Description = "Connect username", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")]
  19. public string ConnectUsername { get; set; }
  20. }
  21. [Route("/Users/{Id}/Connect/Link", "DELETE", Summary = "Removes a Connect link for a user")]
  22. public class DeleteConnectLink : IReturn<ConnectUserLink>
  23. {
  24. [ApiMember(Name = "Id", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "DELETE")]
  25. public string Id { get; set; }
  26. }
  27. [Authenticated]
  28. public class ConnectService : BaseApiService
  29. {
  30. private readonly IConnectManager _connectManager;
  31. public ConnectService(IConnectManager connectManager)
  32. {
  33. _connectManager = connectManager;
  34. }
  35. public object Get(GetConnectUserInfo request)
  36. {
  37. var result = _connectManager.GetUserInfo(request.Id);
  38. return ToOptimizedResult(result);
  39. }
  40. public void Post(CreateConnectLink request)
  41. {
  42. var task = _connectManager.LinkUser(request.Id, request.ConnectUsername);
  43. Task.WaitAll(task);
  44. }
  45. public void Delete(DeleteConnectLink request)
  46. {
  47. var task = _connectManager.RemoveLink(request.Id);
  48. Task.WaitAll(task);
  49. }
  50. }
  51. }