31 lines
749 B
Elixir
31 lines
749 B
Elixir
defmodule Weather.Gov do
|
|
def url(airport) do
|
|
"https://w1.weather.gov/xml/current_obs/#{airport}.xml"
|
|
end
|
|
|
|
def current_observations(airport) do
|
|
url(airport)
|
|
|> HTTPoison.get(Accept: "application/xml")
|
|
|> process_result()
|
|
end
|
|
|
|
def process_result({:ok, %HTTPoison.Response{status_code: 200, body: body}}) do
|
|
body
|
|
end
|
|
|
|
def process_result({:ok, %HTTPoison.Response{status_code: 404}}) do
|
|
IO.puts("Location wasn't found")
|
|
System.halt(404)
|
|
end
|
|
|
|
def process_result({:ok, %HTTPoison.Response{status_code: status_code}}) do
|
|
IO.puts("Another error occured, code: #{status_code}")
|
|
System.halt(status_code)
|
|
end
|
|
|
|
def process_result({:error, reason}) do
|
|
IO.inspect(reason)
|
|
System.halt(2)
|
|
end
|
|
end
|