Skip to content

Instantly share code, notes, and snippets.

@ihumanable
Created November 23, 2021 00:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ihumanable/050ec5b1f0228aa3c6c6e7a55a38cc10 to your computer and use it in GitHub Desktop.
Save ihumanable/050ec5b1f0228aa3c6c6e7a55a38cc10 to your computer and use it in GitHub Desktop.
Patch Original for Discord
defmodule Patch.Mock.Original.For.Discord do
alias Patch.Mock.Delegate.For.Discord, as: Delegate
def send_message(%Message{} = message) do
with :ok <- Delegate.validate_message(message),
:ok <- Delegate.save_message(message) do
Delegate.broadcast_message(message)
end
end
def validate_message(message) do
with :ok <- Delegate.validate_author_is_member(message),
:ok <- Delegate.validate_message_length(message),
:ok <- Delegate.validate_slowmode(message) do
:ok
end
end
def save_message(message) do
DurableStorage.save(message)
end
def broadcast_message(message) do
message.channel
|> Channel.recipients()
|> Enum.each(&send(&1, {:message, message}))
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment