Packages
timber
2.4.5
3.1.2
3.1.1
3.1.0
3.0.0
3.0.0-alpha.3
3.0.0-alpha.2
3.0.0-alpha.1
2.8.4
2.8.3
2.8.2
2.8.1
2.8.0
2.7.0
2.6.1
2.6.0
2.5.6
2.5.5
2.5.4
2.5.3
2.5.2
2.5.1
2.5.0
2.4.5
2.4.4
2.4.3
2.4.2
2.4.1
2.4.0
2.3.4
2.3.3
2.3.1
2.3.0
2.2.1
2.2.0
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
2.0.0-rc7
2.0.0-rc6
2.0.0-rc5
2.0.0-rc4
2.0.0-rc3
2.0.0-rc2
2.0.0-rc1
1.1.18
1.1.17
1.1.16
1.1.15
1.1.14
1.1.13
1.1.12
1.1.11
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.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
🌲 Great Elixir Logging Made Easy. Official Timber.io Integration.
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/timber/install/http_client.ex
defmodule Mix.Tasks.Timber.Install.HTTPClient do
@moduledoc false
def start do
case :inets.start() do
:ok -> :ok
{:error, {:already_started, _name}} -> :ok
other -> other
end
case :ssl.start() do
:ok -> :ok
{:error, {:already_started, _name}} -> :ok
other -> other
end
end
def request(method, headers, url, opts \\ []) when method in [:get, :post] do
vsn = Application.spec(:timber, :vsn)
headers = headers ++ [{'User-Agent', 'Timber Elixir/#{vsn} (HTTP)'}]
body =
Keyword.get(opts, :body, "")
|> encode_body()
case do_request(method, url, headers, body) do
{:ok, {{_protocol, status, _status_name}, _headers, body}} ->
{:ok, status, body}
{:error, reason} -> {:error, reason}
end
end
defp do_request(:get, url, headers, _body) do
:httpc.request(:get, {String.to_charlist(url), headers}, [], [])
end
defp do_request(:post, url, headers, []) do
:httpc.request(:post, {String.to_charlist(url), headers, [], []}, [], [])
end
defp do_request(:post, url, headers, body) do
:httpc.request(:post, {String.to_charlist(url), headers, 'application/json', body}, [], [])
end
defp encode_body(body) when is_map(body) do
Poison.encode!(body)
end
defp encode_body(body) when is_binary(body), do: String.to_charlist(body)
end