Current section
Files
Jump to
Current section
Files
lib/exdgraph/adapter.ex
defmodule ExDgraph.Adapter do
@doc """
Use `ExDgraph.Adapter` to set the behaviour.
"""
defmacro __using__(_) do
quote location: :keep do
@behaviour ExDgraph.Adapter
end
end
@type host :: String.t() | atom
@type port_number :: integer()
@type conn :: term()
@type opts :: keyword()
@type transaction :: %{}
@type request :: %{}
@type json_lib :: module()
@type result :: %{}
@callback connect(host, port_number, opts) :: {:ok, conn} | {:error, term}
@callback disconnect(conn) :: :ok | {:error, term}
@callback ping(conn) :: :ok | {:error, term}
@callback alter(conn, request, json_lib, opts) :: {:ok, result} | {:error, term}
@callback mutate(conn, request, json_lib, opts) :: {:ok, result} | {:error, term}
@callback query(conn, request, json_lib, opts) :: {:ok, result} | {:error, term}
@callback commit_or_abort(conn, transaction, json_lib, opts) ::
{:ok, transaction} | {:error, term}
def connect(adapter, host, port, opts), do: adapter.connect(host, port, opts)
def disconnect(adapter, conn), do: adapter.disconnect(conn)
def ping(adapter, conn), do: adapter.ping(conn)
def alter(adapter, conn, request, json_lib, opts),
do: adapter.alter(conn, request, json_lib, opts)
def mutate(adapter, conn, request, json_lib, opts),
do: adapter.mutate(conn, request, json_lib, opts)
def query(adapter, conn, request, json_lib, opts),
do: adapter.query(conn, request, json_lib, opts)
def commit_or_abort(adapter, conn, request, json_lib, opts),
do: adapter.commit_or_abort(conn, request, json_lib, opts)
end