View Source AbsintheUtils.Middleware.DeprecatedArgs (absinthe_utils v0.0.1-development)
Link to this section Summary
Functions
Absinthe middleware for handling deprecated or renamed field arguments (arg).
Link to this section Functions
Absinthe middleware for handling deprecated or renamed field arguments (arg).
It automatically handles mutual exclusivity and changing the argument keys (names) before passing it to the resolver. For this to work, this middleware must be added before the resolver.
Middleware options:
legacy_arg_identifier: The identifier of the field that has been deprecated. If this argument is provided, this middleware will rename it to thenew_arg_identifier.new_arg_identifier: The identifier of the new field, if passed, nothing changes.is_required: if at least one of the arguments must be provided. If the validation fails, an Absinthe compliant error will be returned and the operation marked as resolved (it will not reach the resolver).
All options are required.
example-usage
Example usage
field :query_with_deprecated_required_args, non_null(:string) do
arg(:old_arg, :string, deprecate: "Use `newParam` instead.")
arg(:new_arg, :string)
# This middleware must be added before the resolver
middleware(
DeprecatedArgs,
%{
legacy_arg_identifier: :old_arg,
new_arg_identifier: :new_arg,
is_required: true
}
)
resolve(&MyApp.my_resolver/3)
end