aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/QuickConnect/QuickConnectService.cs
diff options
context:
space:
mode:
authorMatt Montgomery <33811686+ConfusedPolarBear@users.noreply.github.com>2020-08-13 15:35:04 -0500
committerMatt Montgomery <33811686+ConfusedPolarBear@users.noreply.github.com>2020-08-16 14:45:39 -0500
commit035d29fb357006c29ffb40e0a53c1e999237cdd1 (patch)
tree9bcf8df018ce70da0208468be6918be127c3a59b /MediaBrowser.Api/QuickConnect/QuickConnectService.cs
parent4fa3d3f4f3083a43622d69aa76ae714b7a7aabd7 (diff)
Migrate to new API standard
Diffstat (limited to 'MediaBrowser.Api/QuickConnect/QuickConnectService.cs')
-rw-r--r--MediaBrowser.Api/QuickConnect/QuickConnectService.cs132
1 files changed, 0 insertions, 132 deletions
diff --git a/MediaBrowser.Api/QuickConnect/QuickConnectService.cs b/MediaBrowser.Api/QuickConnect/QuickConnectService.cs
deleted file mode 100644
index 7093be990..000000000
--- a/MediaBrowser.Api/QuickConnect/QuickConnectService.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-using System;
-using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Net;
-using MediaBrowser.Controller.QuickConnect;
-using MediaBrowser.Model.QuickConnect;
-using MediaBrowser.Model.Services;
-using Microsoft.Extensions.Logging;
-
-namespace MediaBrowser.Api.QuickConnect
-{
- [Route("/QuickConnect/Initiate", "GET", Summary = "Requests a new quick connect code")]
- public class Initiate : IReturn<QuickConnectResult>
- {
- [ApiMember(Name = "FriendlyName", Description = "Device friendly name", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
- public string FriendlyName { get; set; }
- }
-
- [Route("/QuickConnect/Connect", "GET", Summary = "Attempts to retrieve authentication information")]
- public class Connect : IReturn<QuickConnectResult>
- {
- [ApiMember(Name = "Secret", Description = "Quick connect secret", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "GET")]
- public string Secret { get; set; }
- }
-
- [Route("/QuickConnect/Authorize", "POST", Summary = "Authorizes a pending quick connect request")]
- [Authenticated]
- public class Authorize : IReturn<bool>
- {
- [ApiMember(Name = "Code", Description = "Quick connect identifying code", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "GET")]
- public string Code { get; set; }
- }
-
- [Route("/QuickConnect/Deauthorize", "POST", Summary = "Deletes all quick connect authorization tokens for the current user")]
- [Authenticated]
- public class Deauthorize : IReturn<int>
- {
- [ApiMember(Name = "UserId", Description = "User Id", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
- public Guid UserId { get; set; }
- }
-
- [Route("/QuickConnect/Status", "GET", Summary = "Gets the current quick connect state")]
- public class QuickConnectStatus : IReturn<QuickConnectResult>
- {
-
- }
-
- [Route("/QuickConnect/Available", "POST", Summary = "Enables or disables quick connect")]
- [Authenticated(Roles = "Admin")]
- public class Available : IReturn<QuickConnectState>
- {
- [ApiMember(Name = "Status", Description = "New quick connect status", IsRequired = false, DataType = "QuickConnectState", ParameterType = "query", Verb = "GET")]
- public QuickConnectState Status { get; set; }
- }
-
- [Route("/QuickConnect/Activate", "POST", Summary = "Temporarily activates quick connect for the time period defined in the server configuration")]
- [Authenticated]
- public class Activate : IReturn<bool>
- {
-
- }
-
- public class QuickConnectService : BaseApiService
- {
- private IQuickConnect _quickConnect;
- private IUserManager _userManager;
- private IAuthorizationContext _authContext;
-
- public QuickConnectService(
- ILogger<QuickConnectService> logger,
- IServerConfigurationManager serverConfigurationManager,
- IHttpResultFactory httpResultFactory,
- IUserManager userManager,
- IAuthorizationContext authContext,
- IQuickConnect quickConnect)
- : base(logger, serverConfigurationManager, httpResultFactory)
- {
- _userManager = userManager;
- _quickConnect = quickConnect;
- _authContext = authContext;
- }
-
- public object Get(Initiate request)
- {
- return _quickConnect.TryConnect(request.FriendlyName);
- }
-
- public object Get(Connect request)
- {
- return _quickConnect.CheckRequestStatus(request.Secret);
- }
-
- public object Get(QuickConnectStatus request)
- {
- _quickConnect.ExpireRequests();
- return _quickConnect.State;
- }
-
- public object Post(Deauthorize request)
- {
- AssertCanUpdateUser(_authContext, _userManager, request.UserId, true);
-
- return _quickConnect.DeleteAllDevices(request.UserId);
- }
-
- public object Post(Authorize request)
- {
- return _quickConnect.AuthorizeRequest(Request, request.Code);
- }
-
- public object Post(Activate request)
- {
- if (_quickConnect.State == QuickConnectState.Unavailable)
- {
- return false;
- }
-
- string name = _authContext.GetAuthorizationInfo(Request).User.Username;
-
- Logger.LogInformation("{name} temporarily activated quick connect", name);
- _quickConnect.Activate();
-
- return true;
- }
-
- public object Post(Available request)
- {
- _quickConnect.SetState(request.Status);
- return _quickConnect.State;
- }
- }
-}