|
@@ -0,0 +1,36 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Net.Http.Headers;
|
|
|
+using Microsoft.OpenApi.Models;
|
|
|
+using Swashbuckle.AspNetCore.SwaggerGen;
|
|
|
+
|
|
|
+namespace Jellyfin.Server.Filters;
|
|
|
+
|
|
|
+internal class RetryOnTemporarlyUnavailableFilter : IOperationFilter
|
|
|
+{
|
|
|
+ public void Apply(OpenApiOperation operation, OperationFilterContext context)
|
|
|
+ {
|
|
|
+ operation.Responses.Add("503", new OpenApiResponse()
|
|
|
+ {
|
|
|
+ Description = "The server is currently starting or is temporarly not available.",
|
|
|
+ Headers = new Dictionary<string, OpenApiHeader>()
|
|
|
+ {
|
|
|
+ {
|
|
|
+ "retry-after",
|
|
|
+ new() { AllowEmptyValue = true, Required = false, Description = "A hint for when to retry the operation." }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "message",
|
|
|
+ new() { AllowEmptyValue = true, Required = false, Description = "A short plain-text reason why the server is not available." }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ Content = new Dictionary<string, OpenApiMediaType>()
|
|
|
+ {
|
|
|
+ {
|
|
|
+ "text/html",
|
|
|
+ new OpenApiMediaType()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|