Packages
timber
2.1.8
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/application.ex
defmodule Mix.Tasks.Timber.Install.Application do
@moduledoc false
alias __MODULE__.MalformedApplicationPayload
alias Mix.Tasks.Timber.Install.API
defstruct [
:api_key,
:heroku_drain_url,
:name,
:platform_type,
:slug
]
def new!(api) do
response = API.application!(api)
case response do
{200, %{"api_key" => api_key, "heroku_drain_url" => heroku_drain_url, "name" => name,
"platform_type" => platform_type, "slug" => slug}}
->
%__MODULE__{
api_key: api_key,
heroku_drain_url: heroku_drain_url,
name: name,
platform_type: platform_type,
slug: slug
}
{200, payload} -> raise(MalformedApplicationPayload, payload: payload)
end
end
#
# Errors
#
defmodule MalformedApplicationPayload do
defexception [:message]
def exception(opts) do
payload = Keyword.fetch!(opts, :payload)
message =
"""
Uh oh! We received a malformed application payload:
#{inspect(payload)}
"""
%__MODULE__{message: message}
end
end
end