Current section

Files

Jump to
zx24ht lib tesla middleware keep_request.ex
Raw

lib/tesla/middleware/keep_request.ex

defmodule Tesla.Middleware.KeepRequest do
@behaviour Tesla.Middleware
@moduledoc """
Store request body & headers into opts.
### Example
```
defmodule MyClient do
use Tesla
plug Tesla.Middleware.KeepRequest
end
{:ok, env} = MyClient.post("/", "request-data")
env.body # => "response-data"
env.opts[:req_body] # => "request-data"
```
"""
def call(env, next, _opts) do
env
|> Tesla.put_opt(:req_body, env.body)
|> Tesla.put_opt(:req_headers, env.headers)
|> Tesla.run(next)
end
end