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