Current section
Files
Jump to
Current section
Files
lib/conduit/plug/created_by.ex
defmodule Conduit.Plug.CreatedBy do
use Conduit.Plug.Builder
@moduledoc """
Assigns name of app to created_by of the message.
## Examples
iex> defmodule MyPipeline do
iex> use Conduit.Plug.Builder
iex>
iex> plug Conduit.Plug.CreatedBy, app: "myapp"
iex> end
iex> message = MyPipeline.run(%Conduit.Message{})
iex> message.created_by
"myapp"
"""
def init(opts) do
_ = Keyword.fetch!(opts, :app)
opts
end
@doc """
Assigns created_by.
"""
def call(message, next, opts) do
created_by =
opts
|> Keyword.get(:app)
|> to_string
message
|> put_created_by(created_by)
|> next.()
end
end