From 95a4fc0f18d93a370347ae5aca05a177a173c32f Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Wed, 7 Apr 2021 14:36:49 +0200 Subject: Merge pull request #5688 from crobibero/api-docs-sever-discovery Add SessionDiscoveryInfo to generated api-docs (cherry picked from commit f718735b4ef639041ae5f0854341a4e0e471917e) Signed-off-by: Joshua M. Boniface --- .../Extensions/ApiServiceCollectionExtensions.cs | 2 +- Jellyfin.Server/Filters/AdditionalModelFilter.cs | 34 ++++++++++++++++++++++ Jellyfin.Server/Filters/WebsocketModelFilter.cs | 32 -------------------- 3 files changed, 35 insertions(+), 33 deletions(-) create mode 100644 Jellyfin.Server/Filters/AdditionalModelFilter.cs delete mode 100644 Jellyfin.Server/Filters/WebsocketModelFilter.cs diff --git a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs index 90e28bea2..dda6002b8 100644 --- a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs +++ b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs @@ -319,7 +319,7 @@ namespace Jellyfin.Server.Extensions c.OperationFilter(); c.OperationFilter(); c.OperationFilter(); - c.DocumentFilter(); + c.DocumentFilter(); }); } diff --git a/Jellyfin.Server/Filters/AdditionalModelFilter.cs b/Jellyfin.Server/Filters/AdditionalModelFilter.cs new file mode 100644 index 000000000..87a59e0b4 --- /dev/null +++ b/Jellyfin.Server/Filters/AdditionalModelFilter.cs @@ -0,0 +1,34 @@ +using MediaBrowser.Common.Plugins; +using MediaBrowser.Controller.LiveTv; +using MediaBrowser.Model.ApiClient; +using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Session; +using MediaBrowser.Model.SyncPlay; +using Microsoft.OpenApi.Models; +using Swashbuckle.AspNetCore.SwaggerGen; + +namespace Jellyfin.Server.Filters +{ + /// + /// Add models not directly used by the API, but used for discovery and websockets. + /// + public class AdditionalModelFilter : IDocumentFilter + { + /// + public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context) + { + context.SchemaGenerator.GenerateSchema(typeof(LibraryUpdateInfo), context.SchemaRepository); + context.SchemaGenerator.GenerateSchema(typeof(IPlugin), context.SchemaRepository); + context.SchemaGenerator.GenerateSchema(typeof(PlayRequest), context.SchemaRepository); + context.SchemaGenerator.GenerateSchema(typeof(PlaystateRequest), context.SchemaRepository); + context.SchemaGenerator.GenerateSchema(typeof(TimerEventInfo), context.SchemaRepository); + context.SchemaGenerator.GenerateSchema(typeof(SendCommand), context.SchemaRepository); + context.SchemaGenerator.GenerateSchema(typeof(GeneralCommandType), context.SchemaRepository); + + context.SchemaGenerator.GenerateSchema(typeof(GroupUpdate), context.SchemaRepository); + + context.SchemaGenerator.GenerateSchema(typeof(SessionMessageType), context.SchemaRepository); + context.SchemaGenerator.GenerateSchema(typeof(ServerDiscoveryInfo), context.SchemaRepository); + } + } +} diff --git a/Jellyfin.Server/Filters/WebsocketModelFilter.cs b/Jellyfin.Server/Filters/WebsocketModelFilter.cs deleted file mode 100644 index 38afb201d..000000000 --- a/Jellyfin.Server/Filters/WebsocketModelFilter.cs +++ /dev/null @@ -1,32 +0,0 @@ -using MediaBrowser.Common.Plugins; -using MediaBrowser.Controller.LiveTv; -using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Session; -using MediaBrowser.Model.SyncPlay; -using Microsoft.OpenApi.Models; -using Swashbuckle.AspNetCore.SwaggerGen; - -namespace Jellyfin.Server.Filters -{ - /// - /// Add models used in websocket messaging. - /// - public class WebsocketModelFilter : IDocumentFilter - { - /// - public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context) - { - context.SchemaGenerator.GenerateSchema(typeof(LibraryUpdateInfo), context.SchemaRepository); - context.SchemaGenerator.GenerateSchema(typeof(IPlugin), context.SchemaRepository); - context.SchemaGenerator.GenerateSchema(typeof(PlayRequest), context.SchemaRepository); - context.SchemaGenerator.GenerateSchema(typeof(PlaystateRequest), context.SchemaRepository); - context.SchemaGenerator.GenerateSchema(typeof(TimerEventInfo), context.SchemaRepository); - context.SchemaGenerator.GenerateSchema(typeof(SendCommand), context.SchemaRepository); - context.SchemaGenerator.GenerateSchema(typeof(GeneralCommandType), context.SchemaRepository); - - context.SchemaGenerator.GenerateSchema(typeof(GroupUpdate), context.SchemaRepository); - - context.SchemaGenerator.GenerateSchema(typeof(SessionMessageType), context.SchemaRepository); - } - } -} -- cgit v1.2.3