From 9a0dfc00f1e36092476f62984ba66886032f4f89 Mon Sep 17 00:00:00 2001 From: Cody Robibero Date: Sat, 10 Jun 2023 07:28:21 -0600 Subject: Add all websocket messages to generated openapi spec (#9682) * Add all websocket messages to generated openapi spec * Use oneOf * JsonIgnore ServerId * Oops * Add discriminators * Add WebSocketMessage container for Inbound and Outbound messages --- MediaBrowser.Controller/Net/WebSocketMessage.cs | 28 ++++++++++++++++++ MediaBrowser.Controller/Net/WebSocketMessageOfT.cs | 33 ++++++++++++++++++++++ .../WebSocketMessages/IInboundWebSocketMessage.cs | 10 +++++++ .../WebSocketMessages/IOutboundWebSocketMessage.cs | 10 +++++++ .../Inbound/ActivityLogEntryStartMessage.cs | 25 ++++++++++++++++ .../Inbound/ActivityLogEntryStopMessage.cs | 25 ++++++++++++++++ .../Inbound/ScheduledTasksInfoStartMessage.cs | 25 ++++++++++++++++ .../Inbound/ScheduledTasksInfoStopMessage.cs | 25 ++++++++++++++++ .../Inbound/SessionsStartMessage.cs | 24 ++++++++++++++++ .../Inbound/SessionsStopMessage.cs | 24 ++++++++++++++++ .../WebSocketMessages/InboundWebSocketMessage.cs | 9 ++++++ .../Outbound/ActivityLogEntryMessage.cs | 25 ++++++++++++++++ .../Outbound/ForceKeepAliveMessage.cs | 23 +++++++++++++++ .../Outbound/GeneralCommandMessage.cs | 23 +++++++++++++++ .../Outbound/LibraryChangedMessage.cs | 24 ++++++++++++++++ .../Net/WebSocketMessages/Outbound/PlayMessage.cs | 23 +++++++++++++++ .../WebSocketMessages/Outbound/PlaystateMessage.cs | 23 +++++++++++++++ .../Outbound/PluginInstallationCancelledMessage.cs | 24 ++++++++++++++++ .../Outbound/PluginInstallationCompletedMessage.cs | 24 ++++++++++++++++ .../Outbound/PluginInstallationFailedMessage.cs | 24 ++++++++++++++++ .../Outbound/PluginInstallingMessage.cs | 24 ++++++++++++++++ .../Outbound/PluginUninstalledMessage.cs | 24 ++++++++++++++++ .../Outbound/RefreshProgressMessage.cs | 24 ++++++++++++++++ .../Outbound/RestartRequiredMessage.cs | 14 +++++++++ .../Outbound/ScheduledTaskEndedMessage.cs | 24 ++++++++++++++++ .../Outbound/ScheduledTasksInfoMessage.cs | 25 ++++++++++++++++ .../Outbound/SeriesTimerCancelledMessage.cs | 24 ++++++++++++++++ .../Outbound/SeriesTimerCreatedMessage.cs | 24 ++++++++++++++++ .../Outbound/ServerRestartingMessage.cs | 14 +++++++++ .../Outbound/ServerShuttingDownMessage.cs | 14 +++++++++ .../WebSocketMessages/Outbound/SessionsMessage.cs | 24 ++++++++++++++++ .../Outbound/SyncPlayCommandMessage.cs | 24 ++++++++++++++++ .../Outbound/SyncPlayGroupUpdateCommandMessage.cs | 24 ++++++++++++++++ ...SyncPlayGroupUpdateCommandOfGroupInfoMessage.cs | 25 ++++++++++++++++ ...yGroupUpdateCommandOfGroupStateUpdateMessage.cs | 25 ++++++++++++++++ ...ayGroupUpdateCommandOfPlayQueueUpdateMessage.cs | 25 ++++++++++++++++ .../SyncPlayGroupUpdateCommandOfStringMessage.cs | 25 ++++++++++++++++ .../Outbound/TimerCancelledMessage.cs | 24 ++++++++++++++++ .../Outbound/TimerCreatedMessage.cs | 24 ++++++++++++++++ .../Outbound/UserDataChangedMessage.cs | 23 +++++++++++++++ .../Outbound/UserDeletedMessage.cs | 24 ++++++++++++++++ .../Outbound/UserUpdatedMessage.cs | 24 ++++++++++++++++ .../WebSocketMessages/OutboundWebSocketMessage.cs | 9 ++++++ .../WebSocketMessages/Shared/KeepAliveMessage.cs | 23 +++++++++++++++ 44 files changed, 985 insertions(+) create mode 100644 MediaBrowser.Controller/Net/WebSocketMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessageOfT.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/IInboundWebSocketMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/IOutboundWebSocketMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ActivityLogEntryStartMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ActivityLogEntryStopMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ScheduledTasksInfoStartMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ScheduledTasksInfoStopMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Inbound/SessionsStartMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Inbound/SessionsStopMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/InboundWebSocketMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ActivityLogEntryMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ForceKeepAliveMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/GeneralCommandMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/LibraryChangedMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PlayMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PlaystateMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallationCancelledMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallationCompletedMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallationFailedMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallingMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginUninstalledMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/RefreshProgressMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/RestartRequiredMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ScheduledTaskEndedMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ScheduledTasksInfoMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SeriesTimerCancelledMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SeriesTimerCreatedMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ServerRestartingMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ServerShuttingDownMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SessionsMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayCommandMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfGroupInfoMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfGroupStateUpdateMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfPlayQueueUpdateMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfStringMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/TimerCancelledMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/TimerCreatedMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/UserDataChangedMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/UserDeletedMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Outbound/UserUpdatedMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessage.cs create mode 100644 MediaBrowser.Controller/Net/WebSocketMessages/Shared/KeepAliveMessage.cs (limited to 'MediaBrowser.Controller/Net') diff --git a/MediaBrowser.Controller/Net/WebSocketMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessage.cs new file mode 100644 index 000000000..c02bcd70b --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessage.cs @@ -0,0 +1,28 @@ +using System; +using System.Text.Json.Serialization; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net; + +/// +/// Websocket message without data. +/// +public abstract class WebSocketMessage +{ + /// + /// Gets or sets the type of the message. + /// TODO make this abstract and get only. + /// + public virtual SessionMessageType MessageType { get; set; } + + /// + /// Gets or sets the message id. + /// + public Guid MessageId { get; set; } + + /// + /// Gets or sets the server id. + /// + [JsonIgnore] + public string? ServerId { get; set; } +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessageOfT.cs b/MediaBrowser.Controller/Net/WebSocketMessageOfT.cs new file mode 100644 index 000000000..7c35c8010 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessageOfT.cs @@ -0,0 +1,33 @@ +#pragma warning disable SA1649 // File name must equal class name. + +namespace MediaBrowser.Controller.Net; + +/// +/// Class WebSocketMessage. +/// +/// The type of the data. +// TODO make this abstract, remove empty ctor. +public class WebSocketMessage : WebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + public WebSocketMessage() + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The data to send. + protected WebSocketMessage(T data) + { + Data = data; + } + + /// + /// Gets or sets the data. + /// + // TODO make this set only. + public T? Data { get; set; } +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/IInboundWebSocketMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/IInboundWebSocketMessage.cs new file mode 100644 index 000000000..c3cf9955a --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/IInboundWebSocketMessage.cs @@ -0,0 +1,10 @@ +#pragma warning disable CA1040 + +namespace MediaBrowser.Controller.Net.WebSocketMessages; + +/// +/// Interface representing that the websocket message is inbound. +/// +public interface IInboundWebSocketMessage +{ +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/IOutboundWebSocketMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/IOutboundWebSocketMessage.cs new file mode 100644 index 000000000..c74a254a6 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/IOutboundWebSocketMessage.cs @@ -0,0 +1,10 @@ +#pragma warning disable CA1040 + +namespace MediaBrowser.Controller.Net.WebSocketMessages; + +/// +/// Interface representing that the websocket message is outbound. +/// +public interface IOutboundWebSocketMessage +{ +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ActivityLogEntryStartMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ActivityLogEntryStartMessage.cs new file mode 100644 index 000000000..b9f71b922 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ActivityLogEntryStartMessage.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using System.ComponentModel; +using MediaBrowser.Model.Activity; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Inbound; + +/// +/// Activity log entry start message. +/// +public class ActivityLogEntryStartMessage : WebSocketMessage>, IInboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Collection of activity log entries. + public ActivityLogEntryStartMessage(IReadOnlyCollection data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.ActivityLogEntryStart)] + public override SessionMessageType MessageType => SessionMessageType.ActivityLogEntryStart; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ActivityLogEntryStopMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ActivityLogEntryStopMessage.cs new file mode 100644 index 000000000..eac129b20 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ActivityLogEntryStopMessage.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using System.ComponentModel; +using MediaBrowser.Model.Activity; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Inbound; + +/// +/// Activity log entry stop message. +/// +public class ActivityLogEntryStopMessage : WebSocketMessage>, IInboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Collection of activity log entries. + public ActivityLogEntryStopMessage(IReadOnlyCollection data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.ActivityLogEntryStop)] + public override SessionMessageType MessageType => SessionMessageType.ActivityLogEntryStop; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ScheduledTasksInfoStartMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ScheduledTasksInfoStartMessage.cs new file mode 100644 index 000000000..dd2a7145e --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ScheduledTasksInfoStartMessage.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.Tasks; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Inbound; + +/// +/// Scheduled tasks info start message. +/// +public class ScheduledTasksInfoStartMessage : WebSocketMessage>, IInboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Collection of task info. + public ScheduledTasksInfoStartMessage(IReadOnlyCollection data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.ScheduledTasksInfoStart)] + public override SessionMessageType MessageType => SessionMessageType.ScheduledTasksInfoStart; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ScheduledTasksInfoStopMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ScheduledTasksInfoStopMessage.cs new file mode 100644 index 000000000..84e1f0166 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/ScheduledTasksInfoStopMessage.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.Tasks; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Inbound; + +/// +/// Scheduled tasks info stop message. +/// +public class ScheduledTasksInfoStopMessage : WebSocketMessage>, IInboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Collection of task info. + public ScheduledTasksInfoStopMessage(IReadOnlyCollection data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.ScheduledTasksInfoStop)] + public override SessionMessageType MessageType => SessionMessageType.ScheduledTasksInfoStop; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/SessionsStartMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/SessionsStartMessage.cs new file mode 100644 index 000000000..e35a5dc3a --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/SessionsStartMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Controller.Session; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Inbound; + +/// +/// Sessions start message. +/// +public class SessionsStartMessage : WebSocketMessage, IInboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Session info. + public SessionsStartMessage(SessionInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.SessionsStart)] + public override SessionMessageType MessageType => SessionMessageType.SessionsStart; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/SessionsStopMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/SessionsStopMessage.cs new file mode 100644 index 000000000..7e3582d64 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Inbound/SessionsStopMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Controller.Session; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Inbound; + +/// +/// Sessions stop message. +/// +public class SessionsStopMessage : WebSocketMessage, IInboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Session info. + public SessionsStopMessage(SessionInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.SessionsStop)] + public override SessionMessageType MessageType => SessionMessageType.SessionsStop; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/InboundWebSocketMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/InboundWebSocketMessage.cs new file mode 100644 index 000000000..20ca888e1 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/InboundWebSocketMessage.cs @@ -0,0 +1,9 @@ +namespace MediaBrowser.Controller.Net.WebSocketMessages; + +/// +/// Class representing the list of outbound websocket message types. +/// Only used in openapi generation. +/// +public class InboundWebSocketMessage : WebSocketMessage +{ +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ActivityLogEntryMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ActivityLogEntryMessage.cs new file mode 100644 index 000000000..5650ee4bb --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ActivityLogEntryMessage.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using System.ComponentModel; +using MediaBrowser.Model.Activity; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Activity log created message. +/// +public class ActivityLogEntryMessage : WebSocketMessage>, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// List of activity log entries. + public ActivityLogEntryMessage(IReadOnlyList data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.ActivityLogEntry)] + public override SessionMessageType MessageType => SessionMessageType.ActivityLogEntry; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ForceKeepAliveMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ForceKeepAliveMessage.cs new file mode 100644 index 000000000..94ade5e81 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ForceKeepAliveMessage.cs @@ -0,0 +1,23 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Force keep alive websocket messages. +/// +public class ForceKeepAliveMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The timeout in seconds. + public ForceKeepAliveMessage(int data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.ForceKeepAlive)] + public override SessionMessageType MessageType => SessionMessageType.ForceKeepAlive; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/GeneralCommandMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/GeneralCommandMessage.cs new file mode 100644 index 000000000..6c71e73f9 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/GeneralCommandMessage.cs @@ -0,0 +1,23 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// General command websocket message. +/// +public class GeneralCommandMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The general command. + public GeneralCommandMessage(GeneralCommand data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.GeneralCommand)] + public override SessionMessageType MessageType => SessionMessageType.GeneralCommand; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/LibraryChangedMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/LibraryChangedMessage.cs new file mode 100644 index 000000000..6432ae8ef --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/LibraryChangedMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Library changed message. +/// +public class LibraryChangedMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The library update info. + public LibraryChangedMessage(LibraryUpdateInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.LibraryChanged)] + public override SessionMessageType MessageType => SessionMessageType.LibraryChanged; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PlayMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PlayMessage.cs new file mode 100644 index 000000000..7f943bda1 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PlayMessage.cs @@ -0,0 +1,23 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Play command websocket message. +/// +public class PlayMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The play request. + public PlayMessage(PlayRequest data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.Play)] + public override SessionMessageType MessageType => SessionMessageType.Play; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PlaystateMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PlaystateMessage.cs new file mode 100644 index 000000000..804ccb37d --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PlaystateMessage.cs @@ -0,0 +1,23 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Playstate message. +/// +public class PlaystateMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Playstate request data. + public PlaystateMessage(PlaystateRequest data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.Playstate)] + public override SessionMessageType MessageType => SessionMessageType.Playstate; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallationCancelledMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallationCancelledMessage.cs new file mode 100644 index 000000000..3d7dc5c93 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallationCancelledMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.Updates; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Plugin installation cancelled message. +/// +public class PluginInstallationCancelledMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Installation info. + public PluginInstallationCancelledMessage(InstallationInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.PackageInstallationCancelled)] + public override SessionMessageType MessageType => SessionMessageType.PackageInstallationCancelled; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallationCompletedMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallationCompletedMessage.cs new file mode 100644 index 000000000..81268007f --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallationCompletedMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.Updates; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Plugin installation completed message. +/// +public class PluginInstallationCompletedMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Installation info. + public PluginInstallationCompletedMessage(InstallationInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.PackageInstallationCompleted)] + public override SessionMessageType MessageType => SessionMessageType.PackageInstallationCompleted; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallationFailedMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallationFailedMessage.cs new file mode 100644 index 000000000..9177f1293 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallationFailedMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.Updates; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Plugin installation failed message. +/// +public class PluginInstallationFailedMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Installation info. + public PluginInstallationFailedMessage(InstallationInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.PackageInstallationFailed)] + public override SessionMessageType MessageType => SessionMessageType.PackageInstallationFailed; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallingMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallingMessage.cs new file mode 100644 index 000000000..e371440a0 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginInstallingMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.Updates; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Package installing message. +/// +public class PluginInstallingMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Installation info. + public PluginInstallingMessage(InstallationInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.PackageInstalling)] + public override SessionMessageType MessageType => SessionMessageType.PackageInstalling; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginUninstalledMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginUninstalledMessage.cs new file mode 100644 index 000000000..b2994fc95 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/PluginUninstalledMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Model.Plugins; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Plugin uninstalled message. +/// +public class PluginUninstalledMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Plugin info. + public PluginUninstalledMessage(PluginInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.PackageUninstalled)] + public override SessionMessageType MessageType => SessionMessageType.PackageUninstalled; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/RefreshProgressMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/RefreshProgressMessage.cs new file mode 100644 index 000000000..42dbc3029 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/RefreshProgressMessage.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; +using System.ComponentModel; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Refresh progress message. +/// +public class RefreshProgressMessage : WebSocketMessage>, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Refresh progress data. + public RefreshProgressMessage(Dictionary data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.RefreshProgress)] + public override SessionMessageType MessageType => SessionMessageType.RefreshProgress; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/RestartRequiredMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/RestartRequiredMessage.cs new file mode 100644 index 000000000..3f3d9e4c8 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/RestartRequiredMessage.cs @@ -0,0 +1,14 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Restart required. +/// +public class RestartRequiredMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + [DefaultValue(SessionMessageType.RestartRequired)] + public override SessionMessageType MessageType => SessionMessageType.RestartRequired; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ScheduledTaskEndedMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ScheduledTaskEndedMessage.cs new file mode 100644 index 000000000..d69662b00 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ScheduledTaskEndedMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.Tasks; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Scheduled task ended message. +/// +public class ScheduledTaskEndedMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Task result. + public ScheduledTaskEndedMessage(TaskResult data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.ScheduledTaskEnded)] + public override SessionMessageType MessageType => SessionMessageType.ScheduledTaskEnded; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ScheduledTasksInfoMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ScheduledTasksInfoMessage.cs new file mode 100644 index 000000000..41a05b0de --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ScheduledTasksInfoMessage.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.Tasks; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Scheduled tasks info message. +/// +public class ScheduledTasksInfoMessage : WebSocketMessage>, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// List of task infos. + public ScheduledTasksInfoMessage(IReadOnlyList data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.ScheduledTasksInfo)] + public override SessionMessageType MessageType => SessionMessageType.ScheduledTasksInfo; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SeriesTimerCancelledMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SeriesTimerCancelledMessage.cs new file mode 100644 index 000000000..d4950b8b6 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SeriesTimerCancelledMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Controller.LiveTv; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Series timer cancelled message. +/// +public class SeriesTimerCancelledMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The timer event info. + public SeriesTimerCancelledMessage(TimerEventInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.SeriesTimerCancelled)] + public override SessionMessageType MessageType => SessionMessageType.SeriesTimerCancelled; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SeriesTimerCreatedMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SeriesTimerCreatedMessage.cs new file mode 100644 index 000000000..091c10be6 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SeriesTimerCreatedMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Controller.LiveTv; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Series timer created message. +/// +public class SeriesTimerCreatedMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// timer event info. + public SeriesTimerCreatedMessage(TimerEventInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.SeriesTimerCreated)] + public override SessionMessageType MessageType => SessionMessageType.SeriesTimerCreated; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ServerRestartingMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ServerRestartingMessage.cs new file mode 100644 index 000000000..a465d8b00 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ServerRestartingMessage.cs @@ -0,0 +1,14 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Server restarting down message. +/// +public class ServerRestartingMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + [DefaultValue(SessionMessageType.ServerRestarting)] + public override SessionMessageType MessageType => SessionMessageType.ServerRestarting; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ServerShuttingDownMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ServerShuttingDownMessage.cs new file mode 100644 index 000000000..0b998a523 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/ServerShuttingDownMessage.cs @@ -0,0 +1,14 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Server shutting down message. +/// +public class ServerShuttingDownMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + [DefaultValue(SessionMessageType.ServerShuttingDown)] + public override SessionMessageType MessageType => SessionMessageType.ServerShuttingDown; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SessionsMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SessionsMessage.cs new file mode 100644 index 000000000..4c91e0bca --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SessionsMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Controller.Session; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Sessions message. +/// +public class SessionsMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Session info. + public SessionsMessage(SessionInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.Sessions)] + public override SessionMessageType MessageType => SessionMessageType.Sessions; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayCommandMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayCommandMessage.cs new file mode 100644 index 000000000..17a0fc66e --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayCommandMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.SyncPlay; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Sync play command. +/// +public class SyncPlayCommandMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The send command. + public SyncPlayCommandMessage(SendCommand data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.SyncPlayCommand)] + public override SessionMessageType MessageType => SessionMessageType.SyncPlayCommand; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandMessage.cs new file mode 100644 index 000000000..d145d0e01 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.SyncPlay; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Untyped sync play command. +/// +public class SyncPlayGroupUpdateCommandMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The send command. + public SyncPlayGroupUpdateCommandMessage(GroupUpdate data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.SyncPlayGroupUpdate)] + public override SessionMessageType MessageType => SessionMessageType.SyncPlayGroupUpdate; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfGroupInfoMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfGroupInfoMessage.cs new file mode 100644 index 000000000..668392c66 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfGroupInfoMessage.cs @@ -0,0 +1,25 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.SyncPlay; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Sync play group update command with group info. +/// GroupUpdateTypes: GroupJoined. +/// +public class SyncPlayGroupUpdateCommandOfGroupInfoMessage : WebSocketMessage>, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The group info. + public SyncPlayGroupUpdateCommandOfGroupInfoMessage(GroupUpdate data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.SyncPlayGroupUpdate)] + public override SessionMessageType MessageType => SessionMessageType.SyncPlayGroupUpdate; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfGroupStateUpdateMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfGroupStateUpdateMessage.cs new file mode 100644 index 000000000..ec8c3344f --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfGroupStateUpdateMessage.cs @@ -0,0 +1,25 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.SyncPlay; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Sync play group update command with group state update. +/// GroupUpdateTypes: StateUpdate. +/// +public class SyncPlayGroupUpdateCommandOfGroupStateUpdateMessage : WebSocketMessage>, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The group info. + public SyncPlayGroupUpdateCommandOfGroupStateUpdateMessage(GroupUpdate data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.SyncPlayGroupUpdate)] + public override SessionMessageType MessageType => SessionMessageType.SyncPlayGroupUpdate; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfPlayQueueUpdateMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfPlayQueueUpdateMessage.cs new file mode 100644 index 000000000..465363f14 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfPlayQueueUpdateMessage.cs @@ -0,0 +1,25 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.SyncPlay; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Sync play group update command with play queue update. +/// GroupUpdateTypes: PlayQueue. +/// +public class SyncPlayGroupUpdateCommandOfPlayQueueUpdateMessage : WebSocketMessage>, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The play queue update. + public SyncPlayGroupUpdateCommandOfPlayQueueUpdateMessage(GroupUpdate data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.SyncPlayGroupUpdate)] + public override SessionMessageType MessageType => SessionMessageType.SyncPlayGroupUpdate; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfStringMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfStringMessage.cs new file mode 100644 index 000000000..b87e9bf71 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/SyncPlayGroupUpdateCommandOfStringMessage.cs @@ -0,0 +1,25 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.SyncPlay; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Sync play group update command with string. +/// GroupUpdateTypes: GroupDoesNotExist (error), LibraryAccessDenied (error), NotInGroup (error), GroupLeft (groupId), UserJoined (username), UserLeft (username). +/// +public class SyncPlayGroupUpdateCommandOfStringMessage : WebSocketMessage>, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The send command. + public SyncPlayGroupUpdateCommandOfStringMessage(GroupUpdate data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.SyncPlayGroupUpdate)] + public override SessionMessageType MessageType => SessionMessageType.SyncPlayGroupUpdate; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/TimerCancelledMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/TimerCancelledMessage.cs new file mode 100644 index 000000000..0e70549ef --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/TimerCancelledMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Controller.LiveTv; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Timer cancelled message. +/// +public class TimerCancelledMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Timer event info. + public TimerCancelledMessage(TimerEventInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.TimerCancelled)] + public override SessionMessageType MessageType => SessionMessageType.TimerCancelled; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/TimerCreatedMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/TimerCreatedMessage.cs new file mode 100644 index 000000000..295b3081c --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/TimerCreatedMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Controller.LiveTv; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// Timer created message. +/// +public class TimerCreatedMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// Timer event info. + public TimerCreatedMessage(TimerEventInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.TimerCreated)] + public override SessionMessageType MessageType => SessionMessageType.TimerCreated; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/UserDataChangedMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/UserDataChangedMessage.cs new file mode 100644 index 000000000..b60769540 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/UserDataChangedMessage.cs @@ -0,0 +1,23 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// User data changed message. +/// +public class UserDataChangedMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The data change info. + public UserDataChangedMessage(UserDataChangeInfo data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.UserDataChanged)] + public override SessionMessageType MessageType => SessionMessageType.UserDataChanged; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/UserDeletedMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/UserDeletedMessage.cs new file mode 100644 index 000000000..6d527be7f --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/UserDeletedMessage.cs @@ -0,0 +1,24 @@ +using System; +using System.ComponentModel; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// User deleted message. +/// +public class UserDeletedMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The user id. + public UserDeletedMessage(Guid data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.UserDeleted)] + public override SessionMessageType MessageType => SessionMessageType.UserDeleted; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/UserUpdatedMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/UserUpdatedMessage.cs new file mode 100644 index 000000000..99e9a1f91 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Outbound/UserUpdatedMessage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Outbound; + +/// +/// User updated message. +/// +public class UserUpdatedMessage : WebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The user dto. + public UserUpdatedMessage(UserDto data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.UserUpdated)] + public override SessionMessageType MessageType => SessionMessageType.UserUpdated; +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessage.cs new file mode 100644 index 000000000..dba3c8392 --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessage.cs @@ -0,0 +1,9 @@ +namespace MediaBrowser.Controller.Net.WebSocketMessages; + +/// +/// Class representing the list of outbound websocket message types. +/// Only used in openapi generation. +/// +public class OutboundWebSocketMessage : WebSocketMessage +{ +} diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/Shared/KeepAliveMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/Shared/KeepAliveMessage.cs new file mode 100644 index 000000000..7f636212c --- /dev/null +++ b/MediaBrowser.Controller/Net/WebSocketMessages/Shared/KeepAliveMessage.cs @@ -0,0 +1,23 @@ +using System.ComponentModel; +using MediaBrowser.Model.Session; + +namespace MediaBrowser.Controller.Net.WebSocketMessages.Shared; + +/// +/// Keep alive websocket messages. +/// +public class KeepAliveMessage : WebSocketMessage, IInboundWebSocketMessage, IOutboundWebSocketMessage +{ + /// + /// Initializes a new instance of the class. + /// + /// The seconds to keep alive for. + public KeepAliveMessage(int data) + : base(data) + { + } + + /// + [DefaultValue(SessionMessageType.KeepAlive)] + public override SessionMessageType MessageType => SessionMessageType.KeepAlive; +} -- cgit v1.2.3