Current section
Files
Jump to
Current section
Files
lib/faunadoo.ex
defmodule Faunadoo do
alias HTTPoison
def query(fql_expression, key) do
url = "https://db.fauna.com/query/1"
headers = [
{"accept", "application/json, text/plain, */*"},
{"authorization", "Bearer #{key}"},
{"x-format", "simple"},
{"x-typecheck", "false"}
]
body = %{
"query" => fql_expression,
"arguments" => %{}
}
case HTTPoison.post(url, Jason.encode!(body), headers, hackney: [ssl: [{:versions, '[tlsv1.2]'}]]) do
{:ok, %{status_code: 200, body: response_body}} ->
{:ok, decode_response(response_body)}
{:error, reason} ->
{:error, "Failed to execute query: #{reason}"}
end
end
defp decode_response(body) do
{:ok, Jason.decode!(body)["data"]}
end
end