chore: Remove account.destroy listener (#1530)

This commit is contained in:
Pranav Raj S 2020-12-19 18:11:43 +05:30 committed by GitHub
parent 090b716ec1
commit 8e2b4acc43
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 13 additions and 33 deletions

View file

@ -15,7 +15,6 @@ class AccountBuilder
end
[@user, @account]
rescue StandardError => e
@account&.destroy
puts e.inspect
raise e
end

View file

@ -1,16 +1,22 @@
class InstallationWebhookListener < BaseListener
def account_created(event)
payload = event.data[:account].webhook_data.merge(event: __method__.to_s)
deliver_webhook_payloads(payload)
end
def account_destroyed(event)
payload = event.data[:account].webhook_data.merge(event: __method__.to_s)
payload = account(event).webhook_data.merge(
event: __method__.to_s,
users: users(event)
)
deliver_webhook_payloads(payload)
end
private
def account(event)
event.data[:account]
end
def users(event)
account(event).administrators.map(&:webhook_data)
end
def deliver_webhook_payloads(payload)
# Deliver the installation event
webhook_url = InstallationConfig.find_by(name: 'INSTALLATION_EVENTS_WEBHOOK_URL')&.value

View file

@ -60,7 +60,6 @@ class Account < ApplicationRecord
enum locale: LANGUAGES_CONFIG.map { |key, val| [val[:iso_639_1_code], key] }.to_h
after_create_commit :notify_creation
after_destroy :notify_deletion
def agents
users.where(account_users: { role: :agent })
@ -92,8 +91,4 @@ class Account < ApplicationRecord
def notify_creation
Rails.configuration.dispatcher.dispatch(ACCOUNT_CREATED, Time.zone.now, account: self)
end
def notify_deletion
Rails.configuration.dispatcher.dispatch(ACCOUNT_DESTROYED, Time.zone.now, account: self)
end
end

View file

@ -4,7 +4,6 @@ module Events::Types
### Installation Events ###
# account events
ACCOUNT_CREATED = 'account.created'
ACCOUNT_DESTROYED = 'account.destroyed'
#### Account Events ###
# channel events

View file

@ -17,28 +17,9 @@ describe InstallationWebhookListener do
context 'when installation config is configured' do
it 'triggers webhook' do
create(:installation_config, name: 'INSTALLATION_EVENTS_WEBHOOK_URL', value: 'https://test.com')
expect(WebhookJob).to receive(:perform_later).with('https://test.com', account.webhook_data.merge(event: 'account_created')).once
expect(WebhookJob).to receive(:perform_later).with('https://test.com', account.webhook_data.merge(event: 'account_created', users: [])).once
listener.account_created(event)
end
end
end
describe '#account_destroyed' do
let(:event_name) { :'account.destroyed' }
context 'when installation config is not configured' do
it 'does not trigger webhook' do
expect(WebhookJob).to receive(:perform_later).exactly(0).times
listener.account_destroyed(event)
end
end
context 'when installation config is configured' do
it 'triggers webhook' do
create(:installation_config, name: 'INSTALLATION_EVENTS_WEBHOOK_URL', value: 'https://test.com')
expect(WebhookJob).to receive(:perform_later).with('https://test.com', account.webhook_data.merge(event: 'account_destroyed')).once
listener.account_destroyed(event)
end
end
end
end