* 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>
26 lines
500 B
Ruby
26 lines
500 B
Ruby
# TODO: remove this when Sidekiq has exhausted RateLimitCheckerWorker jobs
|
|
class PingAdmins
|
|
def initialize(user, action = "unknown")
|
|
@user = user
|
|
@action = action
|
|
end
|
|
|
|
def self.call(*args)
|
|
new(*args).call
|
|
end
|
|
|
|
def call
|
|
return unless user
|
|
|
|
SlackBot.ping(
|
|
"Rate limit exceeded (#{action}). https://dev.to#{user.path}",
|
|
channel: "abuse-reports",
|
|
username: "rate_limit",
|
|
icon_emoji: ":hand:",
|
|
)
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :user, :action
|
|
end
|