Current section

Files

Jump to
bot_ex lib bot_ex middleware message_logger.ex
Raw

lib/bot_ex/middleware/message_logger.ex

defmodule BotEx.Middleware.MessageLogger do
@moduledoc """
Logs messages
"""
@behaviour BotEx.Behaviours.Middleware
alias BotEx.Models.Message
import BotEx.Helpers.Debug, only: [print_debug: 1]
@doc """
Debug messages in terminal
"""
@impl true
def transform(%Message{} = t_msg) do
debug(t_msg)
t_msg
end
defp debug(t_msg) do
t_msg
|> info_to_string
|> print_debug()
print_debug("==========")
end
@doc """
Create debug message from `BotEx.Models.Message`
"""
@spec info_to_string(Message.t()) :: String.t()
def info_to_string(%Message{
action: action,
module: module,
data: data
}) do
"Route to:\n" <>
" - module: #{inspect(module)} \n - action: #{action}\n - data: #{inspect(data)}"
end
end