From 36f3e933a23d802d154c16fd304a82c3fe3f453d Mon Sep 17 00:00:00 2001
From: ConfusedPolarBear <33811686+ConfusedPolarBear@users.noreply.github.com>
Date: Wed, 15 Apr 2020 14:28:42 -0500
Subject: Add quick connect
---
.../QuickConnect/QuickConnectResult.cs | 50 ++++++++++++++++++++
.../QuickConnect/QuickConnectResultDto.cs | 53 ++++++++++++++++++++++
.../QuickConnect/QuickConnectState.cs | 23 ++++++++++
3 files changed, 126 insertions(+)
create mode 100644 MediaBrowser.Model/QuickConnect/QuickConnectResult.cs
create mode 100644 MediaBrowser.Model/QuickConnect/QuickConnectResultDto.cs
create mode 100644 MediaBrowser.Model/QuickConnect/QuickConnectState.cs
(limited to 'MediaBrowser.Model')
diff --git a/MediaBrowser.Model/QuickConnect/QuickConnectResult.cs b/MediaBrowser.Model/QuickConnect/QuickConnectResult.cs
new file mode 100644
index 0000000000..bc3fd00466
--- /dev/null
+++ b/MediaBrowser.Model/QuickConnect/QuickConnectResult.cs
@@ -0,0 +1,50 @@
+using System;
+
+namespace MediaBrowser.Model.QuickConnect
+{
+ ///
+ /// Stores the result of an incoming quick connect request.
+ ///
+ public class QuickConnectResult
+ {
+ ///
+ /// Gets a value indicating whether this request is authorized.
+ ///
+ public bool Authenticated => !string.IsNullOrEmpty(Authentication);
+
+ ///
+ /// Gets or sets the secret value used to uniquely identify this request. Can be used to retrieve authentication information.
+ ///
+ public string Secret { get; set; }
+
+ ///
+ /// Gets or sets the public value used to uniquely identify this request. Can only be used to authorize the request.
+ ///
+ public string Lookup { get; set; }
+
+ ///
+ /// Gets or sets the user facing code used so the user can quickly differentiate this request from others.
+ ///
+ public string Code { get; set; }
+
+ ///
+ /// Gets or sets the device friendly name.
+ ///
+ public string FriendlyName { get; set; }
+
+ ///
+ /// Gets or sets the private access token.
+ ///
+ public string Authentication { get; set; }
+
+ ///
+ /// Gets or sets an error message.
+ ///
+ public string Error { get; set; }
+
+ ///
+ /// Gets or sets the DateTime that this request was created.
+ ///
+ public DateTime DateAdded { get; set; }
+ }
+}
diff --git a/MediaBrowser.Model/QuickConnect/QuickConnectResultDto.cs b/MediaBrowser.Model/QuickConnect/QuickConnectResultDto.cs
new file mode 100644
index 0000000000..671b7cc943
--- /dev/null
+++ b/MediaBrowser.Model/QuickConnect/QuickConnectResultDto.cs
@@ -0,0 +1,53 @@
+using System;
+
+namespace MediaBrowser.Model.QuickConnect
+{
+ ///
+ /// Stores the non-sensitive results of an incoming quick connect request.
+ ///
+ public class QuickConnectResultDto
+ {
+ ///
+ /// Gets a value indicating whether this request is authorized.
+ ///
+ public bool Authenticated { get; private set; }
+
+ ///
+ /// Gets the user facing code used so the user can quickly differentiate this request from others.
+ ///
+ public string Code { get; private set; }
+
+ ///
+ /// Gets the public value used to uniquely identify this request. Can only be used to authorize the request.
+ ///
+ public string Lookup { get; private set; }
+
+ ///
+ /// Gets the device friendly name.
+ ///
+ public string FriendlyName { get; private set; }
+
+ ///
+ /// Gets the DateTime that this request was created.
+ ///
+ public DateTime DateAdded { get; private set; }
+
+ ///
+ /// Cast an internal quick connect result to a DTO by removing all sensitive properties.
+ ///
+ /// QuickConnectResult object to cast
+ public static implicit operator QuickConnectResultDto(QuickConnectResult result)
+ {
+ QuickConnectResultDto resultDto = new QuickConnectResultDto
+ {
+ Authenticated = result.Authenticated,
+ Code = result.Code,
+ FriendlyName = result.FriendlyName,
+ DateAdded = result.DateAdded,
+ Lookup = result.Lookup
+ };
+
+ return resultDto;
+ }
+ }
+}
diff --git a/MediaBrowser.Model/QuickConnect/QuickConnectState.cs b/MediaBrowser.Model/QuickConnect/QuickConnectState.cs
new file mode 100644
index 0000000000..9f250519b1
--- /dev/null
+++ b/MediaBrowser.Model/QuickConnect/QuickConnectState.cs
@@ -0,0 +1,23 @@
+namespace MediaBrowser.Model.QuickConnect
+{
+ ///
+ /// Quick connect state.
+ ///
+ public enum QuickConnectState
+ {
+ ///
+ /// This feature has not been opted into and is unavailable until the server administrator chooses to opt-in.
+ ///
+ Unavailable,
+
+ ///
+ /// The feature is enabled for use on the server but is not currently accepting connection requests.
+ ///
+ Available,
+
+ ///
+ /// The feature is actively accepting connection requests.
+ ///
+ Active
+ }
+}
--
cgit v1.2.3