Current section
Files
Jump to
Current section
Files
lib/kvasir/command/encoder.ex
defmodule Kvasir.Command.Encoder do
def encode(command) do
%{
type: type(command),
meta: meta(command),
payload: payload(command)
}
end
defp type(%command{}), do: inspect(command)
defp meta(%{__meta__: meta}) do
meta
|> Map.from_struct()
|> Enum.reject(&is_nil(elem(&1, 1)))
|> Enum.into(%{})
end
defp payload(command) do
command
|> Map.from_struct()
|> Map.delete(:__meta__)
end
end