Skuld.Effects.Port.Repo.Effectful behaviour (skuld v0.23.0)
View SourceEffectful behaviour for Skuld.Effects.Port.Repo.Contract.
Defines computation-returning callbacks for each Repo operation.
Effectful implementations declare @behaviour Skuld.Effects.Port.Repo.Effectful.
Summary
Callbacks
@callback aggregate(queryable :: Ecto.Queryable.t(), aggregate :: atom(), field :: atom()) :: Skuld.Comp.Types.computation(term())
@callback all(queryable :: Ecto.Queryable.t()) :: Skuld.Comp.Types.computation([struct()])
@callback delete(record :: struct()) :: Skuld.Comp.Types.computation({:ok, struct()} | {:error, Ecto.Changeset.t()})
@callback delete_all(queryable :: Ecto.Queryable.t(), opts :: keyword()) :: Skuld.Comp.Types.computation({non_neg_integer(), nil | list()})
@callback exists?(queryable :: Ecto.Queryable.t()) :: Skuld.Comp.Types.computation(boolean())
@callback get(queryable :: Ecto.Queryable.t(), id :: term()) :: Skuld.Comp.Types.computation(struct() | nil)
@callback get!(queryable :: Ecto.Queryable.t(), id :: term()) :: Skuld.Comp.Types.computation(struct())
@callback get_by(queryable :: Ecto.Queryable.t(), clauses :: keyword() | map()) :: Skuld.Comp.Types.computation(struct() | nil)
@callback get_by!(queryable :: Ecto.Queryable.t(), clauses :: keyword() | map()) :: Skuld.Comp.Types.computation(struct())
@callback insert(changeset :: Ecto.Changeset.t()) :: Skuld.Comp.Types.computation({:ok, struct()} | {:error, Ecto.Changeset.t()})
@callback insert_all( source :: Ecto.Queryable.t() | binary(), entries :: [map() | keyword()], opts :: keyword() ) :: Skuld.Comp.Types.computation({non_neg_integer(), nil | list()})
@callback one(queryable :: Ecto.Queryable.t()) :: Skuld.Comp.Types.computation(struct() | nil)
@callback one!(queryable :: Ecto.Queryable.t()) :: Skuld.Comp.Types.computation(struct())
@callback update(changeset :: Ecto.Changeset.t()) :: Skuld.Comp.Types.computation({:ok, struct()} | {:error, Ecto.Changeset.t()})
@callback update_all( queryable :: Ecto.Queryable.t(), updates :: keyword(), opts :: keyword() ) :: Skuld.Comp.Types.computation({non_neg_integer(), nil | list()})