From 1079c4e4023f8a1aca7d2f89ecb7f63614e2a5ee Mon Sep 17 00:00:00 2001 From: Anna Buianova Date: Thu, 17 Dec 2020 20:31:22 +0300 Subject: [PATCH] Removed slack notification for admins when user is deleted (#11929) --- app/services/slack/messengers/user_deleted.rb | 39 ------------------- app/workers/users/delete_worker.rb | 3 -- .../slack/messengers/user_deleted_spec.rb | 37 ------------------ spec/workers/users/delete_worker_spec.rb | 14 ------- 4 files changed, 93 deletions(-) delete mode 100644 app/services/slack/messengers/user_deleted.rb delete mode 100644 spec/services/slack/messengers/user_deleted_spec.rb diff --git a/app/services/slack/messengers/user_deleted.rb b/app/services/slack/messengers/user_deleted.rb deleted file mode 100644 index 97e464581..000000000 --- a/app/services/slack/messengers/user_deleted.rb +++ /dev/null @@ -1,39 +0,0 @@ -module Slack - module Messengers - class UserDeleted - MESSAGE_TEMPLATE = <<~TEXT.chomp.freeze - %s (%s) - self-deleted their account. - Please, delete them from Mailchimp & Google Analytics. - TEXT - - def initialize(name:, user_url:) - @name = name - @user_url = user_url - end - - def self.call(*args) - new(*args).call - end - - def call - message = format( - MESSAGE_TEMPLATE, - name: name, - user_url: user_url, - ) - - Slack::Messengers::Worker.perform_async( - message: message, - channel: "user-deleted", - username: "user_deleted_bot", - icon_emoji: ":scissors:", - ) - end - - private - - attr_reader :name, :user_url - end - end -end diff --git a/app/workers/users/delete_worker.rb b/app/workers/users/delete_worker.rb index ce9d94d66..a4c0789b0 100644 --- a/app/workers/users/delete_worker.rb +++ b/app/workers/users/delete_worker.rb @@ -18,9 +18,6 @@ module Users # thus we pass the data we need to render to deliver the email, not the # whole object NotifyMailer.with(name: user.name, email: user.email).account_deleted_email.deliver_now - - # notify admins about self-delete - Slack::Messengers::UserDeleted.call(name: user.name, user_url: URL.user(user)) rescue StandardError => e DatadogStatsClient.count("users.delete", 1, tags: ["action:failed", "user_id:#{user.id}"]) Honeybadger.context({ user_id: user.id }) diff --git a/spec/services/slack/messengers/user_deleted_spec.rb b/spec/services/slack/messengers/user_deleted_spec.rb deleted file mode 100644 index d20ef6b60..000000000 --- a/spec/services/slack/messengers/user_deleted_spec.rb +++ /dev/null @@ -1,37 +0,0 @@ -require "rails_helper" - -RSpec.describe Slack::Messengers::UserDeleted, type: :service do - let(:user) { build(:user) } - - let(:default_params) do - { - name: user.name, - user_url: URL.user(user) - } - end - - it "contains the correct info", :aggregate_failures do - sidekiq_assert_enqueued_jobs(1, only: Slack::Messengers::Worker) do - described_class.call(default_params) - end - - job = sidekiq_enqueued_jobs(worker: Slack::Messengers::Worker).last - message = job["args"].first["message"] - - expect(message).to include("self-deleted their account") - expect(message).to include(URL.user(user)) - end - - it "messages the proper channel with the proper username and emoji", :aggregate_failures do - sidekiq_assert_enqueued_jobs(1, only: Slack::Messengers::Worker) do - described_class.call(default_params) - end - - job = sidekiq_enqueued_jobs(worker: Slack::Messengers::Worker).last - job_args = job["args"].first - - expect(job_args["channel"]).to eq("user-deleted") - expect(job_args["username"]).to eq("user_deleted_bot") - expect(job_args["icon_emoji"]).to eq(":scissors:") - end -end diff --git a/spec/workers/users/delete_worker_spec.rb b/spec/workers/users/delete_worker_spec.rb index 03603a1e2..1bb1e744a 100644 --- a/spec/workers/users/delete_worker_spec.rb +++ b/spec/workers/users/delete_worker_spec.rb @@ -5,8 +5,6 @@ RSpec.describe Users::DeleteWorker, type: :worker do let(:mailer_class) { NotifyMailer } let(:mailer) { double } let(:message_delivery) { double } - let(:slack_messenger_class) { Slack::Messengers::UserDeleted } - let(:slack_messenger) { double } describe "#perform" do let!(:user) { create(:user) } @@ -49,18 +47,6 @@ RSpec.describe Users::DeleteWorker, type: :worker do expect(message_delivery).to have_received(:deliver_now) end - it "sends the gdpr notification" do - allow(slack_messenger_class).to receive(:call) - worker.perform(user.id) - expect(slack_messenger_class).to have_received(:call).with(name: user.name, user_url: URL.user(user)) - end - - it "doesn't send the gdpr notification for admin triggered deletion" do - allow(slack_messenger_class).to receive(:call) - worker.perform(user.id, true) - expect(slack_messenger_class).not_to have_received(:call) - end - it "creates a gdpr-delete record" do expect do worker.perform(user.id, true)