Current section
Files
Jump to
Current section
Files
lib/annon_client/base.ex
defmodule Annon.Client.Base do
@moduledoc false
defmacro __using__(_) do
quote do
use HTTPoison.Base
def process_request_headers(headers) do
headers ++ [{"Content-Type", "application/json"}]
end
defp process_request_body(body) do
Poison.encode!(body)
end
defp get_validation_message(body) do
body
|> Poison.decode!()
|> Map.fetch!("error")
|> Map.fetch!("invalid")
|> Enum.map_join("\n", fn %{"entry" => json_path, "rules" => rules} ->
"- Field #{json_path}: " <>
Enum.map_join(rules, "; ", fn %{"description" => description, "params" => params} ->
"#{description} (#{params_to_string(params)})"
end)
end)
end
defp params_to_string(list) when is_list(list),
do: Enum.join(list, ", ")
defp params_to_string(any),
do: inspect(any)
end
end
end