diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-10-13 16:14:53 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-10-13 16:14:53 -0400 |
| commit | ab3c26c5647a56e95d0f5229f07b1a1b45812ff8 (patch) | |
| tree | bbcaf5db256364f19cdb4f7c18eb82171dc4183b /MediaBrowser.Api/ConnectService.cs | |
| parent | 8a15ee6ab4149cf59f8ff2724e3e415d34557da1 (diff) | |
update connect
Diffstat (limited to 'MediaBrowser.Api/ConnectService.cs')
| -rw-r--r-- | MediaBrowser.Api/ConnectService.cs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/MediaBrowser.Api/ConnectService.cs b/MediaBrowser.Api/ConnectService.cs index 9ea75d4ac..3a863316b 100644 --- a/MediaBrowser.Api/ConnectService.cs +++ b/MediaBrowser.Api/ConnectService.cs @@ -1,6 +1,8 @@ using MediaBrowser.Controller.Connect; using MediaBrowser.Controller.Net; +using MediaBrowser.Model.Connect; using ServiceStack; +using System.Collections.Generic; using System.Threading.Tasks; namespace MediaBrowser.Api @@ -22,6 +24,30 @@ namespace MediaBrowser.Api public string Id { get; set; } } + [Route("/Connect/Invite", "POST", Summary = "Creates a Connect link for a user")] + public class CreateConnectInvite : IReturn<UserLinkResult> + { + [ApiMember(Name = "ConnectUsername", Description = "Connect username", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] + public string ConnectUsername { get; set; } + + [ApiMember(Name = "SendingUserId", Description = "Sending User Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "DELETE")] + public string SendingUserId { get; set; } + } + + + [Route("/Connect/Pending", "GET", Summary = "Creates a Connect link for a user")] + public class GetPendingGuests : IReturn<List<ConnectAuthorization>> + { + } + + + [Route("/Connect/Pending", "DELETE", Summary = "Deletes a Connect link for a user")] + public class DeleteAuthorization : IReturnVoid + { + [ApiMember(Name = "Id", Description = "Authorization Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "DELETE")] + public string Id { get; set; } + } + [Authenticated(Roles = "Admin")] public class ConnectService : BaseApiService { @@ -37,11 +63,30 @@ namespace MediaBrowser.Api return _connectManager.LinkUser(request.Id, request.ConnectUsername); } + public object Post(CreateConnectInvite request) + { + return _connectManager.InviteUser(request.SendingUserId, request.ConnectUsername); + } + public void Delete(DeleteConnectLink request) { var task = _connectManager.RemoveLink(request.Id); Task.WaitAll(task); } + + public async Task<object> Get(GetPendingGuests request) + { + var result = await _connectManager.GetPendingGuests().ConfigureAwait(false); + + return ToOptimizedResult(result); + } + + public void Delete(DeleteAuthorization request) + { + var task = _connectManager.CancelAuthorization(request.Id); + + Task.WaitAll(task); + } } } |
