Packages

An Elixir package to interact with the Currency API.

Current section

Files

Jump to
fxdatapi lib convert.ex
Raw

lib/convert.ex

defmodule Convert do
alias HTTPoison
@base_url "https://fxdatapi.com/v1/convert"
@content_type "application/json"
@accept "application/json"
defp login_and_get_cookie(username, password) do
with {:ok, _login_response} <- Auth.login(username, password) do
{:ok, "user_type=member; username=#{username}"}
else
{:error, _} -> {:error, "Login failed"}
end
end
def get(username, password, date, base_currency, target_currency, amount) do
with {:ok, cookie} <- login_and_get_cookie(username, password),
post_body = %{
"username" => username,
"date" => date,
"base_currency" => base_currency,
"target_currency" => target_currency,
"amount" => amount
},
headers <- [
{"Content-Type", @content_type},
{"Accept", @accept},
{"Cookie", cookie}
],
{:ok, %HTTPoison.Response{status_code: 200, body: response_body}} <-
HTTPoison.post(@base_url, Poison.encode!(post_body), headers) do
{:ok, Poison.decode!(response_body)}
else
{:error, error} -> {:error, error}
end
end
end