UseCase
A different approach for Elixir projects structure.
defmodule SayHello do
@moduledoc """
My great interactor
"""
use UseCase.Interactor,
input: [:name],
output: [:message]
def call(%{name: name}, _opts), do: ok(message: "Hello #{name}!")
end
UseCase.call %SayHello{name: "Henrique"}
# {:ok, %SayHello.Output{message: "Hello Henrique!"}}
Installation
The package can be installed by adding use_case
to your list of dependencies in mix.exs
:
def deps do
[
{:use_case, "~> 0.1.2"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/use_case.