Current section

Files

Jump to
ex_dgraph lib exdgraph query.ex
Raw

lib/exdgraph/query.ex

defmodule ExDgraph.Query do
@moduledoc """
Provides the functions for the callbacks from the DBConnection behaviour.
"""
alias ExDgraph.{Exception, QueryStatement, Transform}
@doc false
def query!(conn, statement) do
case query_commit(conn, statement) do
{:error, f} ->
raise Exception, code: f.code, message: f.message
r ->
r
end
end
@doc false
def query(conn, statement) do
case query_commit(conn, statement) do
{:error, f} -> {:error, code: f.code, message: f.message}
r -> {:ok, r}
end
end
defp query_commit(conn, statement) do
exec = fn conn ->
q = %QueryStatement{statement: statement}
case DBConnection.execute(conn, q, %{}) do
{:ok, resp} -> Transform.transform_query(resp)
other -> other
end
end
# Response.transform(DBConnection.run(conn, exec, run_opts()))
DBConnection.run(conn, exec, run_opts())
end
defp run_opts do
[pool: ExDgraph.config(:pool)]
end
end