Current section

Files

Jump to
bolty lib bolty bolt_protocol message begin_message.ex
Raw

lib/bolty/bolt_protocol/message/begin_message.ex

defmodule Bolty.BoltProtocol.Message.BeginMessage do
@moduledoc false
alias Bolty.BoltProtocol.MessageEncoder
@signature 0x11
def encode(bolt_version, extra_parameters)
when is_float(bolt_version) and bolt_version >= 3.0 do
message = [get_extra_parameters(extra_parameters)]
MessageEncoder.encode(@signature, message)
end
def encode(_, _) do
{:error,
Bolty.Error.wrap(__MODULE__, %{
code: :unsupported_message_version,
message: "BEGIN message version not supported"
})}
end
defp get_extra_parameters(extra_parameters) do
keys_to_extract = [:bookmarks, :mode, :db, :tx_metadata]
Map.take(extra_parameters, keys_to_extract)
end
end