aboutsummaryrefslogtreecommitdiff
path: root/lib/consumer.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/consumer.ex')
-rw-r--r--lib/consumer.ex25
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