using System;
using System.Linq;
using Jellyfin.Api.Attributes;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
namespace Jellyfin.Server.Filters
{
    /// 
    /// Mark parameter as deprecated if it has the .
    /// 
    public class ParameterObsoleteFilter : IOperationFilter
    {
        /// 
        public void Apply(OpenApiOperation operation, OperationFilterContext context)
        {
            foreach (var parameterDescription in context.ApiDescription.ParameterDescriptions)
            {
                if (parameterDescription
                    .CustomAttributes()
                    .OfType()
                    .Any())
                {
                    foreach (var parameter in operation.Parameters)
                    {
                        if (parameter.Name.Equals(parameterDescription.Name, StringComparison.Ordinal))
                        {
                            parameter.Deprecated = true;
                            break;
                        }
                    }
                }
            }
        }
    }
}