commit 0b576d0b3b752603311ca603ed02e52bf97f0c9c
parent 47bd2f461d1ae7cf1056ba04690646c0e469e0ad
Author: srfsh <dev@srf.sh>
Date: Thu, 10 Nov 2022 13:35:28 +0300
Zenflows.VF.{Unit,ResourceSpecification}.Domain: allow create() functions to take an optional repo parameter
Required for the migrations. We might want to add this to all create() functions anyway.
Diffstat:
2 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/src/zenflows/vf/resource_specification/domain.ex b/src/zenflows/vf/resource_specification/domain.ex
@@ -51,22 +51,22 @@ def all!(page \\ Page.new()) do
value
end
-@spec create(Schema.params())
+@spec create(Ecto.Repo.t(), Schema.params())
:: {:ok, ResourceSpecification.t()} | {:error, Changeset.t()}
-def create(params) do
+def create(repo \\ Repo, params) do
key = multi_key()
Multi.new()
|> multi_insert(params)
- |> Repo.transaction()
+ |> repo.transaction()
|> case do
{:ok, %{^key => value}} -> {:ok, value}
{:error, _, reason, _} -> {:error, reason}
end
end
-@spec create!(Schema.params()) :: ResourceSpecification.t()
-def create!(params) do
- {:ok, value} = create(params)
+@spec create!(Ecto.Repo.t(), Schema.params()) :: ResourceSpecification.t()
+def create!(repo \\ Repo, params) do
+ {:ok, value} = create(repo, params)
value
end
diff --git a/src/zenflows/vf/unit/domain.ex b/src/zenflows/vf/unit/domain.ex
@@ -50,21 +50,22 @@ def all!(page \\ Page.new()) do
value
end
-@spec create(Schema.params()) :: {:ok, Unit.t()} | {:error, Changeset.t()}
-def create(params) do
+@spec create(Ecto.Repo.t(), Schema.params())
+ :: {:ok, Unit.t()} | {:error, Changeset.t()}
+def create(repo \\ Repo, params) do
key = multi_key()
Multi.new()
|> multi_insert(params)
- |> Repo.transaction()
+ |> repo.transaction()
|> case do
{:ok, %{^key => value}} -> {:ok, value}
{:error, _, reason, _} -> {:error, reason}
end
end
-@spec create!(Schema.params()) :: Unit.t()
-def create!(params) do
- {:ok, value} = create(params)
+@spec create!(Ecto.Repo.t(), Schema.params()) :: Unit.t()
+def create!(repo \\ Repo, params) do
+ {:ok, value} = create(repo, params)
value
end