From 89cd41c4cfda0aaa3c209bcd30a3a694ac17f713 Mon Sep 17 00:00:00 2001 From: gabrieljablonski Date: Fri, 20 Mar 2026 00:48:50 -0300 Subject: [PATCH] refactor: update webhook job parameters to include account webhook and delivery ID --- spec/listeners/webhook_listener_spec.rb | 23 +++++++++++++++---- spec/models/portal_spec.rb | 2 +- .../inboxes/conversations/toggle_typing.yml | 11 +++++---- swagger/swagger.json | 14 ++++++----- swagger/tag_groups/client_swagger.json | 14 ++++++----- 5 files changed, 41 insertions(+), 23 deletions(-) diff --git a/spec/listeners/webhook_listener_spec.rb b/spec/listeners/webhook_listener_spec.rb index c93f1a97d..41c3444dd 100644 --- a/spec/listeners/webhook_listener_spec.rb +++ b/spec/listeners/webhook_listener_spec.rb @@ -22,7 +22,8 @@ describe WebhookListener do it 'triggers the webhook event' do webhook = create(:webhook, account: account, inbox: inbox) expect(WebhookJob).to receive(:perform_later) - .with(webhook.url, message.webhook_data.merge(event: 'message_created')).once + .with(webhook.url, message.webhook_data.merge(event: 'message_created'), :account_webhook, + secret: webhook.secret, delivery_id: instance_of(String)).once listener.message_created(message_created_event) end @@ -124,7 +125,10 @@ describe WebhookListener do context 'when webhook is configured and message is incoming' do it 'triggers the webhook event' do webhook = create(:webhook, inbox: inbox, account: account, subscriptions: ['message_incoming']) - expect(WebhookJob).to receive(:perform_later).with(webhook.url, incoming_message.webhook_data.merge(event: 'message_incoming')).once + expect(WebhookJob).to receive(:perform_later).with( + webhook.url, incoming_message.webhook_data.merge(event: 'message_incoming'), :account_webhook, + secret: webhook.secret, delivery_id: instance_of(String) + ).once listener.message_incoming(incoming_message_event) end end @@ -164,7 +168,10 @@ describe WebhookListener do context 'when webhook is configured and message is outgoing' do it 'triggers the webhook event' do webhook = create(:webhook, inbox: inbox, account: account, subscriptions: ['message_outgoing']) - expect(WebhookJob).to receive(:perform_later).with(webhook.url, message.webhook_data.merge(event: 'message_outgoing')).once + expect(WebhookJob).to receive(:perform_later).with( + webhook.url, message.webhook_data.merge(event: 'message_outgoing'), :account_webhook, + secret: webhook.secret, delivery_id: instance_of(String) + ).once listener.message_outgoing(message_created_event) end end @@ -518,7 +525,10 @@ describe WebhookListener do provider_event_data: provider_event_data } - expect(WebhookJob).to receive(:perform_later).with(webhook.url, payload).once + expect(WebhookJob).to receive(:perform_later).with( + webhook.url, payload, :account_webhook, + secret: webhook.secret, delivery_id: instance_of(String) + ).once listener.provider_event_received(provider_event) end end @@ -543,7 +553,10 @@ describe WebhookListener do provider_event_data: provider_event_data } - expect(WebhookJob).to receive(:perform_later).with(webhook.url, payload).once + expect(WebhookJob).to receive(:perform_later).with( + webhook.url, payload, :account_webhook, + secret: webhook.secret, delivery_id: instance_of(String) + ).once listener.provider_event_received(provider_event) end diff --git a/spec/models/portal_spec.rb b/spec/models/portal_spec.rb index c424cea84..d054ec909 100644 --- a/spec/models/portal_spec.rb +++ b/spec/models/portal_spec.rb @@ -50,7 +50,7 @@ RSpec.describe Portal do end it 'does not allow drafting the default locale' do - portal.update!(config: { allowed_locales: %w[en es], draft_locales: ['en'], default_locale: 'en' }) + portal.update(config: { allowed_locales: %w[en es], draft_locales: ['en'], default_locale: 'en' }) # rubocop:disable Rails/SaveBang expect(portal).not_to be_valid expect(portal.errors.full_messages).to include('Config default locale cannot be drafted.') diff --git a/swagger/paths/public/inboxes/conversations/toggle_typing.yml b/swagger/paths/public/inboxes/conversations/toggle_typing.yml index 2a5c5c082..29c928cac 100644 --- a/swagger/paths/public/inboxes/conversations/toggle_typing.yml +++ b/swagger/paths/public/inboxes/conversations/toggle_typing.yml @@ -8,11 +8,12 @@ parameters: - name: typing_status in: query required: true - type: string - enum: - - 'on' - - 'recording' - - 'off' + schema: + type: string + enum: + - 'on' + - 'recording' + - 'off' description: Typing status. requestBody: required: true diff --git a/swagger/swagger.json b/swagger/swagger.json index 2e1cfb6cf..86530a0cf 100644 --- a/swagger/swagger.json +++ b/swagger/swagger.json @@ -1208,12 +1208,14 @@ "name": "typing_status", "in": "query", "required": true, - "type": "string", - "enum": [ - "on", - "recording", - "off" - ], + "schema": { + "type": "string", + "enum": [ + "on", + "recording", + "off" + ] + }, "description": "Typing status." } ], diff --git a/swagger/tag_groups/client_swagger.json b/swagger/tag_groups/client_swagger.json index 38fcdac48..9b06c3606 100644 --- a/swagger/tag_groups/client_swagger.json +++ b/swagger/tag_groups/client_swagger.json @@ -378,12 +378,14 @@ "name": "typing_status", "in": "query", "required": true, - "type": "string", - "enum": [ - "on", - "recording", - "off" - ], + "schema": { + "type": "string", + "enum": [ + "on", + "recording", + "off" + ] + }, "description": "Typing status." } ],