diff options
Diffstat (limited to 'lib/consumer.ex')
| -rw-r--r-- | lib/consumer.ex | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/lib/consumer.ex b/lib/consumer.ex index ace0ba8..614c261 100644 --- a/lib/consumer.ex +++ b/lib/consumer.ex @@ -1,24 +1,29 @@ require Logger -require OK -alias Nostrum.Api +alias Nostrum.Struct.Message +alias Phoenix.PubSub -defmodule Thulani.Consumer do +defmodule Thulani.DiscordConsumer do use Nostrum.Consumer def start_link do - Logger.info('starting consumer') Nostrum.Consumer.start_link(__MODULE__) end @spec handle_event(Nostrum.Consumer.message_create()) :: nil - def handle_event({:MESSAGE_CREATE, message, _ws_state}) do - case Thulani.Message.message(message) do - {:ok, content} -> Api.create_message!(message.channel_id, content) - :ignore -> nil - end + def handle_event({ + :MESSAGE_CREATE, + message = %Message{}, + _ws_state + }) do + case Thulani.Message.validate(message) do + {:ok, command} -> + Logger.debug(%{command: command}) + PubSub.broadcast!(:thulani_pubsub, "cmd", {:cmd, command, message}) - nil + :ignore -> + nil + end end def handle_event(_event), do: :noop |
