Advertisement
Guest User

Untitled

a guest
Dec 1st, 2018
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.45 KB | None | 0 0
  1. type SwaggerDefaultValues () =
  2.     interface IOperationFilter with
  3.         member this.Apply(operation: Operation, context: OperationFilterContext): unit =
  4.             let parameters =
  5.                 operation
  6.                 |> Option.ofObj
  7.                 |> Option.bind (fun operation -> Option.ofObj operation.Parameters)
  8.                 |> Option.map (fun parameters -> parameters.OfType<NonBodyParameter>())
  9.                 |> Option.defaultValue Seq.empty
  10.             for parameter in parameters do
  11.                 let parameterDescription =
  12.                     context.ApiDescription.ParameterDescriptions
  13.                     |> Seq.tryFind (fun x -> x.Name = parameter.Name)
  14.                 let description =
  15.                     parameterDescription
  16.                     |> Option.bind (fun description -> Option.ofObj description.ModelMetadata)
  17.                     |> Option.bind (fun modelMetadata -> Option.ofObj modelMetadata.Description)
  18.                 if isNull parameter.Description && Option.isSome description
  19.                     then parameter.Description <- description.Value
  20.                 let routeInfo = parameterDescription |> Option.map (fun x -> x.RouteInfo)
  21.                 if Option.isSome routeInfo then
  22.                     if isNull parameter.Default then parameter.Default <- routeInfo.Value.DefaultValue
  23.                     parameter.Required <- ((parameter.Required) || (not(routeInfo.Value.IsOptional)))
  24.             ()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement