feat: New APIs for search (#6564)
- Adding new API endpoints for search - Migrations to add appropriate indexes
This commit is contained in:
5
app/views/api/v1/accounts/search/_agent.json.jbuilder
Normal file
5
app/views/api/v1/accounts/search/_agent.json.jbuilder
Normal file
@@ -0,0 +1,5 @@
|
||||
json.id agent.id
|
||||
json.available_name agent.available_name
|
||||
json.email agent.email
|
||||
json.name agent.name
|
||||
json.role agent.role
|
||||
5
app/views/api/v1/accounts/search/_contact.json.jbuilder
Normal file
5
app/views/api/v1/accounts/search/_contact.json.jbuilder
Normal file
@@ -0,0 +1,5 @@
|
||||
json.email contact.email
|
||||
json.id contact.id
|
||||
json.name contact.name
|
||||
json.phone_number contact.phone_number
|
||||
json.identifier contact.identifier
|
||||
4
app/views/api/v1/accounts/search/_inbox.json.jbuilder
Normal file
4
app/views/api/v1/accounts/search/_inbox.json.jbuilder
Normal file
@@ -0,0 +1,4 @@
|
||||
json.id inbox.id
|
||||
json.channel_id inbox.channel_id
|
||||
json.name inbox.name
|
||||
json.channel_type inbox.channel_type
|
||||
14
app/views/api/v1/accounts/search/_message.json.jbuilder
Normal file
14
app/views/api/v1/accounts/search/_message.json.jbuilder
Normal file
@@ -0,0 +1,14 @@
|
||||
json.id message.id
|
||||
json.content message.content
|
||||
json.message_type message.message_type_before_type_cast
|
||||
json.content_type message.content_type
|
||||
json.source_id message.source_id
|
||||
json.inbox_id message.inbox_id
|
||||
json.conversation_id message.conversation.try(:display_id)
|
||||
json.created_at message.created_at.to_i
|
||||
json.agent do
|
||||
json.partial! 'agent', formats: [:json], agent: message.conversation.try(:assignee) if message.conversation.try(:assignee).present?
|
||||
end
|
||||
json.inbox do
|
||||
json.partial! 'inbox', formats: [:json], inbox: message.inbox if message.inbox.present? && message.try(:inbox).present?
|
||||
end
|
||||
7
app/views/api/v1/accounts/search/contacts.json.jbuilder
Normal file
7
app/views/api/v1/accounts/search/contacts.json.jbuilder
Normal file
@@ -0,0 +1,7 @@
|
||||
json.payload do
|
||||
json.contacts do
|
||||
json.array! @result[:contacts] do |contact|
|
||||
json.partial! 'contact', formats: [:json], contact: contact
|
||||
end
|
||||
end
|
||||
end
|
||||
21
app/views/api/v1/accounts/search/conversations.json.jbuilder
Normal file
21
app/views/api/v1/accounts/search/conversations.json.jbuilder
Normal file
@@ -0,0 +1,21 @@
|
||||
json.payload do
|
||||
json.conversations do
|
||||
json.array! @result[:conversations] do |conversation|
|
||||
json.id conversation.display_id
|
||||
json.account_id conversation.account_id
|
||||
json.created_at conversation.created_at.to_i
|
||||
json.message do
|
||||
json.partial! 'message', formats: [:json], message: conversation.messages.try(:first)
|
||||
end
|
||||
json.contact do
|
||||
json.partial! 'contact', formats: [:json], contact: conversation.contact if conversation.try(:contact).present?
|
||||
end
|
||||
json.inbox do
|
||||
json.partial! 'inbox', formats: [:json], inbox: conversation.inbox if conversation.try(:inbox).present?
|
||||
end
|
||||
json.agent do
|
||||
json.partial! 'agent', formats: [:json], agent: conversation.assignee if conversation.try(:assignee).present?
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
32
app/views/api/v1/accounts/search/index.json.jbuilder
Normal file
32
app/views/api/v1/accounts/search/index.json.jbuilder
Normal file
@@ -0,0 +1,32 @@
|
||||
json.payload do
|
||||
json.conversations do
|
||||
json.array! @result[:conversations] do |conversation|
|
||||
json.id conversation.display_id
|
||||
json.account_id conversation.account_id
|
||||
json.created_at conversation.created_at.to_i
|
||||
json.message do
|
||||
json.partial! 'message', formats: [:json], message: conversation.messages.try(:first)
|
||||
end
|
||||
json.contact do
|
||||
json.partial! 'contact', formats: [:json], contact: conversation.contact if conversation.try(:contact).present?
|
||||
end
|
||||
json.inbox do
|
||||
json.partial! 'inbox', formats: [:json], inbox: conversation.inbox if conversation.try(:inbox).present?
|
||||
end
|
||||
json.agent do
|
||||
json.partial! 'agent', formats: [:json], agent: conversation.assignee if conversation.try(:assignee).present?
|
||||
end
|
||||
end
|
||||
end
|
||||
json.contacts do
|
||||
json.array! @result[:contacts] do |contact|
|
||||
json.partial! 'contact', formats: [:json], contact: contact
|
||||
end
|
||||
end
|
||||
|
||||
json.messages do
|
||||
json.array! @result[:messages] do |message|
|
||||
json.partial! 'message', formats: [:json], message: message
|
||||
end
|
||||
end
|
||||
end
|
||||
7
app/views/api/v1/accounts/search/messages.json.jbuilder
Normal file
7
app/views/api/v1/accounts/search/messages.json.jbuilder
Normal file
@@ -0,0 +1,7 @@
|
||||
json.payload do
|
||||
json.messages do
|
||||
json.array! @result[:messages] do |message|
|
||||
json.partial! 'message', formats: [:json], message: message
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user