Packages
one_piece_commanded
0.1.3
0.26.0
0.25.2
0.25.1
0.25.0
0.24.0
0.23.0
0.22.0
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.0
0.19.1
0.19.0
0.18.0
0.17.0
0.16.0
0.15.2
0.15.1
0.15.0
0.14.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.1
0.10.0
0.9.1
0.9.0
0.8.0
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.0
0.5.0
0.4.1
0.4.0
0.3.0
0.2.1
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
Extend Commanded package
Current section
Files
Jump to
Current section
Files
lib/one_piece/commanded/query_handler.ex
defmodule OnePiece.Commanded.QueryHandler do
@type t :: struct()
@type error :: any()
@doc """
Handle the incoming `params` and return the result data.
"""
@callback handle(params :: any()) :: {:ok, t()} | {:error, error()}
@doc """
Convert the module into a `OnePiece.Commanded.QueryHandler`.
## Usage
defmodule MyQueryHandler do
use OnePiece.Commanded.QueryHandler
import Ecto.Query, only: [from: 2]
@impl OnePiece.Commanded.QueryHandler
def handle(params) do
query = from u in User,
where: u.age > 18 or is_nil(params.email),
select: u
{:ok, Repo.all(query)}
end
end
"""
@spec __using__(opts :: []) :: any()
defmacro __using__(_opts \\ []) do
quote do
@behaviour OnePiece.Commanded.QueryHandler
end
end
end