Skip to content

Commit

Permalink
Merge pull request #590 from whatyouhide/json-docs
Browse files Browse the repository at this point in the history
Make EncodeJson/DecodeJson middlewares public
  • Loading branch information
yordis authored May 15, 2023
2 parents 3703690 + 64c2de9 commit e7c4371
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions lib/tesla/middleware/json.ex
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ defmodule Tesla.Middleware.JSON do
mix deps.compile tesla
```
If you only need to encode the request body or decode the response body,
you can use `Tesla.Middleware.EncodeJson` or `Tesla.Middleware.DecodeJson` directly instead.
## Examples
```
Expand Down Expand Up @@ -61,6 +64,7 @@ defmodule Tesla.Middleware.JSON do
It is used by `Tesla.Middleware.EncodeJson`.
"""
@spec encode(Tesla.Env.t(), keyword()) :: Tesla.Env.result()
def encode(env, opts) do
with true <- encodable?(env),
{:ok, body} <- encode_body(env.body, opts) do
Expand Down Expand Up @@ -98,6 +102,7 @@ defmodule Tesla.Middleware.JSON do
It is used by `Tesla.Middleware.DecodeJson`.
"""
@spec decode(Tesla.Env.t(), keyword()) :: Tesla.Env.result()
def decode(env, opts) do
with true <- decodable?(env, opts),
{:ok, body} <- decode_body(env.body, opts) do
Expand Down Expand Up @@ -151,7 +156,15 @@ defmodule Tesla.Middleware.JSON do
end

defmodule Tesla.Middleware.DecodeJson do
@moduledoc false
@moduledoc """
Decodes response body as JSON.
Only decodes the body if the `Content-Type` header suggests
that the body is JSON.
"""
@moduledoc since: "1.8.0"

@impl Tesla.Middleware
def call(env, next, opts) do
opts = opts || []

Expand All @@ -162,7 +175,12 @@ defmodule Tesla.Middleware.DecodeJson do
end

defmodule Tesla.Middleware.EncodeJson do
@moduledoc false
@moduledoc """
Encodes request body as JSON.
"""
@moduledoc since: "1.8.0"

@impl Tesla.Middleware
def call(env, next, opts) do
opts = opts || []

Expand Down

0 comments on commit e7c4371

Please sign in to comment.