Packages
k8s
2.7.0
2.8.0
2.7.0
2.6.2
2.6.1
2.6.0
2.5.0
2.4.2
2.4.1
2.4.0
2.3.0
2.2.0
2.1.1
2.1.0
2.0.3
2.0.2
2.0.1
2.0.0
2.0.0-rc.6
2.0.0-rc.5
2.0.0-rc.4
2.0.0-rc.3
2.0.0-rc.2
2.0.0-rc.1
2.0.0-rc.0
1.2.1
1.2.0
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
1.0.0-rc1
0.5.2
0.5.1
0.5.0
0.5.0-rc.2
0.5.0-rc.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
retired
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.3
Kubernetes API Client for Elixir
Current section
Files
Jump to
Current section
Files
lib/k8s/middleware/request/encode_body.ex
defmodule K8s.Middleware.Request.EncodeBody do
@moduledoc """
Naive JSON body encoder.
Encodes JSON payloads when given an modifiying HTTP verb, otherwise returns an empty string.
"""
@behaviour K8s.Middleware.Request
alias K8s.Middleware.Request
@impl true
def call(%Request{method: method, body: body} = req) do
case encode(body, method) do
{:ok, encoded_body} ->
req = %Request{req | body: encoded_body}
{:ok, req}
error ->
error
end
end
@spec encode(any(), atom()) :: {:ok, binary} | {:error, any}
defp encode(body, http_method) when http_method in [:put, :patch, :post], do: Jason.encode(body)
defp encode(_, _), do: {:ok, nil}
end