improvement: add nil return type to api get/3, read_one/2 and read_one!/2 (#482)

This commit is contained in:
Alessandro Tagliapietra 2023-01-17 05:02:40 -08:00 committed by GitHub
parent 22e07c06b5
commit 5bddd175f3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -487,13 +487,13 @@ defmodule Ash.Api do
id_or_filter :: term(), id_or_filter :: term(),
params :: Keyword.t() params :: Keyword.t()
) :: ) ::
{:ok, Ash.Resource.record()} | {:error, term} {:ok, Ash.Resource.record()} | {:ok, nil} | {:error, term}
@doc """ @doc """
Run an ash query, raising on more than one result. See `c:read_one/2` for more. Run an ash query, raising on more than one result. See `c:read_one/2` for more.
""" """
@callback read_one!(Ash.Query.t() | Ash.Resource.t(), params :: Keyword.t()) :: @callback read_one!(Ash.Query.t() | Ash.Resource.t(), params :: Keyword.t()) ::
Ash.Resource.record() | {Ash.Resource.record(), Ash.Query.t()} | no_return Ash.Resource.record() | {Ash.Resource.record(), Ash.Query.t()} | nil | no_return
@doc """ @doc """
Run a query on a resource, but fail on more than one result. Run a query on a resource, but fail on more than one result.
@ -504,6 +504,7 @@ defmodule Ash.Api do
@callback read_one(Ash.Query.t() | Ash.Resource.t(), params :: Keyword.t()) :: @callback read_one(Ash.Query.t() | Ash.Resource.t(), params :: Keyword.t()) ::
{:ok, Ash.Resource.record()} {:ok, Ash.Resource.record()}
| {:ok, Ash.Resource.record(), Ash.Query.t()} | {:ok, Ash.Resource.record(), Ash.Query.t()}
| {:ok, nil}
| {:error, term} | {:error, term}
@doc """ @doc """
Run an ash query. See `c:read/2` for more. Run an ash query. See `c:read/2` for more.