* Add Slack::Announcer and SlackClient * Add Slack::Messengers::Feedback class * Use Slack::Messengers::Feedback and refactor test * Should not raise an error if params are nil, let the job fail * Add Slack::Messengers::Sponsorship * Rename spec * Use Slack::Messengers::Sponsorship * Add Slack::Messengers::PotentialSpammer * Use Slack::Messengers::PotentialSpammer * Add Slack::Messengers::RateLimit and use it * Refactor a bit and improve tests * Add Slack::Messengers::Note and use it * Use Slack::Announcer and fix spec * Fix specs * Update app/services/slack/announcer.rb Co-Authored-By: Vaidehi Joshi <vaidehi.sj@gmail.com> * Implement review suggestions * Empty commit to trigger Travis Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
31 lines
696 B
Ruby
31 lines
696 B
Ruby
module Slack
|
|
# a thin wrapper on Slack::Notifier
|
|
# for additional options, see https://github.com/stevenosloan/slack-notifier
|
|
class Announcer
|
|
def initialize(message:, channel:, username:, icon_emoji:)
|
|
@message = message
|
|
@channel = channel
|
|
@username = username
|
|
@icon_emoji = icon_emoji
|
|
end
|
|
|
|
def self.call(*args)
|
|
new(*args).call
|
|
end
|
|
|
|
def call
|
|
return if [message, channel, username, icon_emoji].any?(&:blank?)
|
|
|
|
SlackClient.ping(
|
|
message,
|
|
channel: channel,
|
|
username: username,
|
|
icon_emoji: icon_emoji,
|
|
)
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :message, :channel, :username, :icon_emoji
|
|
end
|
|
end
|