Просмотр исходного кода

Merge pull request #5631 from BrianCArnold/FixMessageCommand

(cherry picked from commit a1718e392b4db4ba3123c52c3f654d3953a0e15f)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
Claus Vium 4 лет назад
Родитель
Сommit
bc27c2b7da

+ 5 - 11
Jellyfin.Api/Controllers/SessionController.cs

@@ -313,9 +313,7 @@ namespace Jellyfin.Api.Controllers
         /// Issues a command to a client to display a message to the user.
         /// </summary>
         /// <param name="sessionId">The session id.</param>
-        /// <param name="text">The message test.</param>
-        /// <param name="header">The message header.</param>
-        /// <param name="timeoutMs">The message timeout. If omitted the user will have to confirm viewing the message.</param>
+        /// <param name="command">The <see cref="MessageCommand" /> object containing Header, Message Text, and TimeoutMs.</param>
         /// <response code="204">Message sent.</response>
         /// <returns>A <see cref="NoContentResult"/>.</returns>
         [HttpPost("Sessions/{sessionId}/Message")]
@@ -323,16 +321,12 @@ namespace Jellyfin.Api.Controllers
         [ProducesResponseType(StatusCodes.Status204NoContent)]
         public ActionResult SendMessageCommand(
             [FromRoute, Required] string sessionId,
-            [FromQuery, Required] string text,
-            [FromQuery] string? header,
-            [FromQuery] long? timeoutMs)
+            [FromBody, Required] MessageCommand command)
         {
-            var command = new MessageCommand
+            if (string.IsNullOrWhiteSpace(command.Header))
             {
-                Header = string.IsNullOrEmpty(header) ? "Message from Server" : header,
-                TimeoutMs = timeoutMs,
-                Text = text
-            };
+                command.Header = "Message from Server";
+            }
 
             _sessionManager.SendMessageCommand(RequestHelpers.GetSession(_sessionManager, _authContext, Request).Id, sessionId, command, CancellationToken.None);
 

+ 3 - 0
MediaBrowser.Model/Session/MessageCommand.cs

@@ -1,12 +1,15 @@
 #nullable disable
 #pragma warning disable CS1591
 
+using System.ComponentModel.DataAnnotations;
+
 namespace MediaBrowser.Model.Session
 {
     public class MessageCommand
     {
         public string Header { get; set; }
 
+        [Required(AllowEmptyStrings = false)]
         public string Text { get; set; }
 
         public long? TimeoutMs { get; set; }