PhoenixUp

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.1"}
  ]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/use_case.