mirror of
https://github.com/ash-project/ash_postgres.git
synced 2024-09-20 13:33:50 +12:00
20 lines
509 B
Elixir
20 lines
509 B
Elixir
|
defmodule AshPostgres.Transformers.VerifyRepo do
|
||
|
@moduledoc "Verifies that the repo is configured correctly"
|
||
|
use Ash.Dsl.Transformer
|
||
|
|
||
|
def transform(resource, dsl) do
|
||
|
repo = AshPostgres.repo(resource)
|
||
|
|
||
|
cond do
|
||
|
!Code.ensure_loaded?(repo) ->
|
||
|
{:error, "Could not find repo module #{repo}"}
|
||
|
|
||
|
repo.__adapter__() != Ecto.Adapters.Postgres ->
|
||
|
{:error, "Expected a repo using the postgres adapter `Ecto.Adapters.Postgres`"}
|
||
|
|
||
|
true ->
|
||
|
{:ok, dsl}
|
||
|
end
|
||
|
end
|
||
|
end
|