Current section
Files
Jump to
Current section
Files
lib/helper/http.ex
defmodule ExPnut.Helper.HTTP do
import ExPnut.Helper.UrlParams
@moduledoc false
def get(client, url, params) do
headers = default_headers(client)
params = build(params)
"#{client.endpoint}#{url}"
|> HTTPoison.get!(headers, params: params)
|> ExPnut.Decode.decode()
|> Map.get(:data)
end
def post(client, url, payload, params) do
headers = default_headers(client)
params = build(params)
"#{client.endpoint}#{url}"
|> HTTPoison.post!(payload, headers, params: params)
|> ExPnut.Decode.decode()
|> Map.get(:data)
end
def patch(client, url, payload, params) do
headers = default_headers(client)
params = build(params)
"#{client.endpoint}#{url}"
|> HTTPoison.patch!(payload, headers, params: params)
|> ExPnut.Decode.decode()
|> Map.get(:data)
end
def put(client, url, payload, params) do
headers =
client
|> default_headers()
|> Enum.filter(fn {k, _} -> k !== "Content-Type" end)
params = build(params)
"#{client.endpoint}#{url}"
|> HTTPoison.put!(payload, headers, params: params)
|> ExPnut.Decode.decode()
|> Map.get(:data)
end
def put_json(client, url, payload, params) do
headers = default_headers(client)
params = build(params)
"#{client.endpoint}#{url}"
|> HTTPoison.put!(payload, headers, params: params)
|> ExPnut.Decode.decode()
|> Map.get(:data)
end
def delete(client, url) do
headers = default_headers(client)
"#{client.endpoint}#{url}"
|> HTTPoison.delete!(headers)
|> ExPnut.Decode.decode()
|> Map.get(:data)
end
defp default_headers(client) do
[
{"Authorization", "Bearer #{client.auth}"},
{"Content-Type", "application/json"},
{"X-Pretty-Json", "1"}
]
end
end