aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/QuickConnect
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Model/QuickConnect')
-rw-r--r--MediaBrowser.Model/QuickConnect/QuickConnectResult.cs50
-rw-r--r--MediaBrowser.Model/QuickConnect/QuickConnectResultDto.cs53
-rw-r--r--MediaBrowser.Model/QuickConnect/QuickConnectState.cs23
3 files changed, 126 insertions, 0 deletions
diff --git a/MediaBrowser.Model/QuickConnect/QuickConnectResult.cs b/MediaBrowser.Model/QuickConnect/QuickConnectResult.cs
new file mode 100644
index 000000000..bc3fd0046
--- /dev/null
+++ b/MediaBrowser.Model/QuickConnect/QuickConnectResult.cs
@@ -0,0 +1,50 @@
+using System;
+
+namespace MediaBrowser.Model.QuickConnect
+{
+ /// <summary>
+ /// Stores the result of an incoming quick connect request.
+ /// </summary>
+ public class QuickConnectResult
+ {
+ /// <summary>
+ /// Gets a value indicating whether this request is authorized.
+ /// </summary>
+ public bool Authenticated => !string.IsNullOrEmpty(Authentication);
+
+ /// <summary>
+ /// Gets or sets the secret value used to uniquely identify this request. Can be used to retrieve authentication information.
+ /// </summary>
+ public string Secret { get; set; }
+
+ /// <summary>
+ /// Gets or sets the public value used to uniquely identify this request. Can only be used to authorize the request.
+ /// </summary>
+ public string Lookup { get; set; }
+
+ /// <summary>
+ /// Gets or sets the user facing code used so the user can quickly differentiate this request from others.
+ /// </summary>
+ public string Code { get; set; }
+
+ /// <summary>
+ /// Gets or sets the device friendly name.
+ /// </summary>
+ public string FriendlyName { get; set; }
+
+ /// <summary>
+ /// Gets or sets the private access token.
+ /// </summary>
+ public string Authentication { get; set; }
+
+ /// <summary>
+ /// Gets or sets an error message.
+ /// </summary>
+ public string Error { get; set; }
+
+ /// <summary>
+ /// Gets or sets the DateTime that this request was created.
+ /// </summary>
+ public DateTime DateAdded { get; set; }
+ }
+}
diff --git a/MediaBrowser.Model/QuickConnect/QuickConnectResultDto.cs b/MediaBrowser.Model/QuickConnect/QuickConnectResultDto.cs
new file mode 100644
index 000000000..671b7cc94
--- /dev/null
+++ b/MediaBrowser.Model/QuickConnect/QuickConnectResultDto.cs
@@ -0,0 +1,53 @@
+using System;
+
+namespace MediaBrowser.Model.QuickConnect
+{
+ /// <summary>
+ /// Stores the non-sensitive results of an incoming quick connect request.
+ /// </summary>
+ public class QuickConnectResultDto
+ {
+ /// <summary>
+ /// Gets a value indicating whether this request is authorized.
+ /// </summary>
+ public bool Authenticated { get; private set; }
+
+ /// <summary>
+ /// Gets the user facing code used so the user can quickly differentiate this request from others.
+ /// </summary>
+ public string Code { get; private set; }
+
+ /// <summary>
+ /// Gets the public value used to uniquely identify this request. Can only be used to authorize the request.
+ /// </summary>
+ public string Lookup { get; private set; }
+
+ /// <summary>
+ /// Gets the device friendly name.
+ /// </summary>
+ public string FriendlyName { get; private set; }
+
+ /// <summary>
+ /// Gets the DateTime that this request was created.
+ /// </summary>
+ public DateTime DateAdded { get; private set; }
+
+ /// <summary>
+ /// Cast an internal quick connect result to a DTO by removing all sensitive properties.
+ /// </summary>
+ /// <param name="result">QuickConnectResult object to cast</param>
+ 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 000000000..9f250519b
--- /dev/null
+++ b/MediaBrowser.Model/QuickConnect/QuickConnectState.cs
@@ -0,0 +1,23 @@
+namespace MediaBrowser.Model.QuickConnect
+{
+ /// <summary>
+ /// Quick connect state.
+ /// </summary>
+ public enum QuickConnectState
+ {
+ /// <summary>
+ /// This feature has not been opted into and is unavailable until the server administrator chooses to opt-in.
+ /// </summary>
+ Unavailable,
+
+ /// <summary>
+ /// The feature is enabled for use on the server but is not currently accepting connection requests.
+ /// </summary>
+ Available,
+
+ /// <summary>
+ /// The feature is actively accepting connection requests.
+ /// </summary>
+ Active
+ }
+}