feat: add conversation created event

This commit is contained in:
Shivam Mishra
2025-08-11 19:34:45 +05:30
parent ad42fffcf0
commit da930af312
2 changed files with 41 additions and 0 deletions
+17
View File
@@ -67,6 +67,23 @@ class ReportingEventListener < BaseListener
reporting_event.save!
end
def conversation_created(event)
conversation = extract_conversation_and_account(event)[0]
reporting_event = ReportingEvent.new(
name: 'conversation_created',
value: 0,
value_in_business_hours: 0,
account_id: conversation.account_id,
inbox_id: conversation.inbox_id,
user_id: nil,
conversation_id: conversation.id,
event_start_time: conversation.created_at,
event_end_time: conversation.created_at
)
reporting_event.save!
end
def conversation_bot_handoff(event)
conversation = extract_conversation_and_account(event)[0]
@@ -10,6 +10,30 @@ describe ReportingEventListener do
account: account, inbox: inbox, conversation: conversation)
end
describe '#conversation_created' do
it 'creates conversation_created event' do
expect(account.reporting_events.where(name: 'conversation_created').count).to be 0
event = Events::Base.new('conversation.created', Time.zone.now, conversation: conversation)
listener.conversation_created(event)
expect(account.reporting_events.where(name: 'conversation_created').count).to be 1
created_event = account.reporting_events.where(name: 'conversation_created').first
expect(created_event.value).to eq 0
expect(created_event.conversation_id).to eq conversation.id
end
it 'creates conversation_created event when conversation is created' do
# ensure gravatar job does not send a request
stub_request(:get, /gravatar\.com/).to_return(status: 404, body: '', headers: {})
expect do
perform_enqueued_jobs do
create(:conversation, account: account, inbox: inbox)
end
end.to change { account.reporting_events.where(name: 'conversation_created').count }.by(1)
end
end
describe '#conversation_resolved' do
it 'creates conversation_resolved event' do
expect(account.reporting_events.where(name: 'conversation_resolved').count).to be 0