k8s v0.2.5 K8s.Client.HTTPProvider

HTTPoison and Jason based K8s.Behaviours.HTTPProvider

Link to this section Summary

Functions

Handle HTTPoison responses and errors

Appends Accept and Content-Type headers to K8s.Conf.RequestOptions headers.

Link to this section Functions

Link to this function

handle_response(resp)

Handle HTTPoison responses and errors

Examples

Parses successful JSON responses:

iex> body = ~s({"foo": "bar"})
...> K8s.Client.HTTPProvider.handle_response({:ok, %HTTPoison.Response{status_code: 200, body: body}})
{:ok, %{"foo" => "bar"}}

Handles unauthorized responses:

iex> K8s.Client.HTTPProvider.handle_response({:ok, %HTTPoison.Response{status_code: 401}})
{:error, :unauthorized}

Handles not found responses:

iex> K8s.Client.HTTPProvider.handle_response({:ok, %HTTPoison.Response{status_code: 404}})
{:error, :not_found}

Handles 4xx responses:

iex> K8s.Client.HTTPProvider.handle_response({:ok, %HTTPoison.Response{status_code: 410, body: "Gone"}})
{:error, "HTTP Error: 410; Gone"}

Handles HTTPoison error responses:

iex> K8s.Client.HTTPProvider.handle_response({:error, %HTTPoison.Error{reason: "Foo"}})
{:error, "HTTP Client Error: Foo"}

Appends Accept and Content-Type headers to K8s.Conf.RequestOptions headers.

Example

iex> ro = %K8s.Conf.RequestOptions{headers: [{"Authorization", "Basic AF"}]}
...> K8s.Client.HTTPProvider.headers(ro)
[{"Authorization", "Basic AF"},{"Accept", "application/json"}, {"Content-Type", "application/json"}]