2021-01-20 23:24:15 +00:00
|
|
|
|
using System;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using Jellyfin.Api.Attributes;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc.ApiExplorer;
|
|
|
|
|
using Microsoft.OpenApi.Models;
|
|
|
|
|
using Swashbuckle.AspNetCore.SwaggerGen;
|
|
|
|
|
|
|
|
|
|
namespace Jellyfin.Server.Filters
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Mark parameter as deprecated if it has the <see cref="ParameterObsoleteAttribute"/>.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class ParameterObsoleteFilter : IOperationFilter
|
|
|
|
|
{
|
|
|
|
|
/// <inheritdoc />
|
|
|
|
|
public void Apply(OpenApiOperation operation, OperationFilterContext context)
|
|
|
|
|
{
|
|
|
|
|
foreach (var parameterDescription in context.ApiDescription.ParameterDescriptions)
|
|
|
|
|
{
|
|
|
|
|
if (parameterDescription
|
|
|
|
|
.CustomAttributes()
|
|
|
|
|
.OfType<ParameterObsoleteAttribute>()
|
|
|
|
|
.Any())
|
|
|
|
|
{
|
|
|
|
|
foreach (var parameter in operation.Parameters)
|
|
|
|
|
{
|
|
|
|
|
if (parameter.Name.Equals(parameterDescription.Name, StringComparison.Ordinal))
|
|
|
|
|
{
|
|
|
|
|
parameter.Deprecated = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-01-21 14:01:51 +00:00
|
|
|
|
}
|