Current section

Files

Jump to
tesla lib tesla middleware opts.ex
Raw

lib/tesla/middleware/opts.ex

defmodule Tesla.Middleware.Opts do
@moduledoc """
Set default opts for all requests.
## Examples
```elixir
defmodule MyClient do
def client do
Tesla.client([
{Tesla.Middleware.Opts, [some: "option"]}
])
end
end
```
"""
@behaviour Tesla.Middleware
@impl Tesla.Middleware
def call(env, next, opts) do
adapter =
env.opts
|> Keyword.get(:adapter, [])
|> Keyword.merge(opts[:adapter] || [])
opts =
env.opts
|> Keyword.merge(opts)
|> Keyword.put(:adapter, adapter)
Tesla.run(%{env | opts: opts}, next)
end
end