Current section
Files
Jump to
Current section
Files
lib/darkskyx.ex
defmodule Darkskyx do
@moduledoc """
Darkskyx is an Elixir SDK to talk with darksky.net API.
For more details on API, refer to https://darksky.net/dev/docs
## Usage
Darkskyx.forecast(41.032, -94.234)
Darkskyx.forecast(41.043, -93.23432, %Darkskyx{lang: "ar"})
Darkskyx.time_machine(41.043, -93.23432, 13432423)
Darkskyx.time_machine(41.043, -93.23432, 13432423, %Darkskyx{lang: "ar", units: "si"})
Darkskyx.current(37, -94)
Darkskyx.current(37, -94, %Darkskyx{lang: "ar"})
"""
defstruct extend: nil, exclude: nil, lang: "en", units: "auto"
defdelegate forecast(lat, lng), to: Darkskyx.Api
defdelegate forecast(lat, lng, params), to: Darkskyx.Api
defdelegate time_machine(lat, lng, time), to: Darkskyx.Api
defdelegate time_machine(lat, lng, time, params), to: Darkskyx.Api
def current(lat, lng) do
lat
|> forecast(lng)
|> _format_current()
end
def current(lat, lng, params) do
lat
|> forecast(lng, params)
|> _format_current()
end
defp _format_current({:ok, %{"currently" => current}, _headers}), do: {:ok, current}
defp _format_current(error), do: error
end