View Source OnePiece.Commanded.Helpers (OnePiece.Commanded v0.11.0)

A Swiss Army Knife Helper Module.

Link to this section Summary

Functions

Copy the information from the source map into the given target map.

generate_uuid() deprecated

Deprecated, it has the same behavior as OnePiece.Commanded.Id.new/0.

Transforms the given source map or struct into the target struct.

Returns a keyword list containing the "correlation id" and "causation id" tracing.

Adds the "correlation id" and "causation id" tracing to an existing keyword list configuration option.

Link to this section Functions

Link to this function

cast_to(target, source, keys)

View Source
@spec cast_to(target :: map(), source :: map(), keys :: [Map.key()]) :: map()

Copy the information from the source map into the given target map.

iex> OnePiece.Commanded.Helpers.cast_to(%{}, %{name: "ubi-wan", last_name: "kenobi"}, [:last_name])
%{last_name: "kenobi"}
This function is deprecated. Use `OnePiece.Commanded.Id.new/0` instead..
@spec generate_uuid() :: String.t()

Deprecated, it has the same behavior as OnePiece.Commanded.Id.new/0.

Link to this function

struct_from(source, target)

View Source
@spec struct_from(source :: struct(), target :: struct()) :: struct()
@spec struct_from(attrs :: map(), target :: module()) :: struct()

Transforms the given source map or struct into the target struct.

Link to this function

tracing_from_metadata(metadata)

View Source
@spec tracing_from_metadata(metadata :: Commanded.Event.Handler.metadata()) :: [
  causation_id: String.t(),
  correlation_id: String.t()
]

Returns a keyword list containing the "correlation id" and "causation id" tracing.

iex> OnePiece.Commanded.Helpers.tracing_from_metadata(%{
...>   event_id: "26eb06fe-9ba6-4f58-a2dd-2bdba73de4f2",
...>   correlation_id: "f634ba94-145c-4fa7-bf7f-0d73dd83b446"
...> })
...>
[causation_id: "26eb06fe-9ba6-4f58-a2dd-2bdba73de4f2", correlation_id: "f634ba94-145c-4fa7-bf7f-0d73dd83b446"]

Useful when dispatching commands to copy-forward Commanded.Event.Handler.metadata/0 tracing information.

defmodule MyProcessor do
    application: MyApp,
  use Commanded.Event.Handler,
    name: "my_processor"

  alias OnePiece.Commanded.Helpers

  def handle(%MyEvent{} = event, metadata) do
    MyApp.dispatch(
      %MyCommand{},
      # copy-forward the information
      Helpers.tracing_from_metadata(metadata)
    )
  end
end
Link to this function

tracing_from_metadata(opts, metadata)

View Source
@spec tracing_from_metadata(
  opts :: keyword(),
  metadata :: Commanded.Event.Handler.metadata()
) :: [
  causation_id: String.t(),
  correlation_id: String.t()
]

Adds the "correlation id" and "causation id" tracing to an existing keyword list configuration option.

iex> OnePiece.Commanded.Helpers.tracing_from_metadata([timeout: 30_000], %{
...>   event_id: "26eb06fe-9ba6-4f58-a2dd-2bdba73de4f2",
...>   correlation_id: "f634ba94-145c-4fa7-bf7f-0d73dd83b446"
...> })
...>
[timeout: 30_000, causation_id: "26eb06fe-9ba6-4f58-a2dd-2bdba73de4f2", correlation_id: "f634ba94-145c-4fa7-bf7f-0d73dd83b446"]

Useful when dispatching commands to copy-forward the Commanded.Event.Handler.metadata/0 tracing information and wants to also add other keyword list options.

defmodule MyProcessor do
  use Commanded.Event.Handler,
    application: MyApp,
    name: "my_processor"

  alias OnePiece.Commanded.Helpers

  def handle(%MyEvent{} = event, metadata) do
    MyApp.dispatch(
      %MyCommand{},
      # copy-forward the information
      Helpers.tracing_from_metadata([timeout: 30_000], metadata)
    )
  end
end