Skip to content
Snippets Groups Projects
Commit e9c7f730 authored by Quentin Ribac's avatar Quentin Ribac
Browse files

FIX #18183 TIME 1:15 added more contact fields in /rest/search by senders and recipients

parent 0ec7cce6
No related branches found
No related tags found
No related merge requests found
...@@ -622,12 +622,28 @@ class SearchController ...@@ -622,12 +622,28 @@ class SearchController
$args['searchData'][] = $sendersMatch; $args['searchData'][] = $sendersMatch;
} }
if (!empty($body['senders']) && !empty($body['senders']['values']) && is_array($body['senders']['values']) && is_string($body['senders']['values'][0])) { if (!empty($body['senders']) && !empty($body['senders']['values']) && is_array($body['senders']['values']) && is_string($body['senders']['values'][0])) {
$fields = AutoCompleteController::getInsensitiveFieldsForRequest(['fields' => ['company']]); $fieldsToCompleteSendersBy = [
'firstname',
'lastname',
'company',
'department',
'function',
'address_number',
'address_street',
'address_additional1',
'address_additional2',
'address_postcode',
'address_town',
'address_country',
'email',
'phone'
];
$fields = AutoCompleteController::getInsensitiveFieldsForRequest(['fields' => $fieldsToCompleteSendersBy]);
$requestData = AutoCompleteController::getDataForRequest([ $requestData = AutoCompleteController::getDataForRequest([
'search' => $body['senders']['values'][0], 'search' => trim($body['senders']['values'][0]),
'fields' => $fields, 'fields' => $fields,
'fieldsNumber' => 1 'fieldsNumber' => count($fieldsToCompleteSendersBy)
]); ]);
$contacts = ContactModel::get([ $contacts = ContactModel::get([
...@@ -639,17 +655,17 @@ class SearchController ...@@ -639,17 +655,17 @@ class SearchController
if (empty($contactIds)) { if (empty($contactIds)) {
return null; return null;
} else { } else {
$recipientsMatch = ResourceContactModel::get([ $sendersMatch = ResourceContactModel::get([
'select' => ['res_id'], 'select' => ['res_id'],
'where' => ['item_id in (?)', 'type = ?', 'mode = ?'], 'where' => ['item_id in (?)', 'type = ?', 'mode = ?'],
'data' => [$contactIds, 'contact', 'sender'] 'data' => [$contactIds, 'contact', 'sender']
]); ]);
$resourceByRecipients = array_column($recipientsMatch, 'res_id'); $resourceBySenders = array_column($sendersMatch, 'res_id');
if (empty($resourceByRecipients)) { if (empty($resourceBySenders)) {
return null; return null;
} else { } else {
$args['searchWhere'][] = 'res_id in (?)'; $args['searchWhere'][] = 'res_id in (?)';
$args['searchData'][] = $resourceByRecipients; $args['searchData'][] = $resourceBySenders;
} }
} }
} }
...@@ -678,12 +694,28 @@ class SearchController ...@@ -678,12 +694,28 @@ class SearchController
$args['searchData'][] = $recipientsMatch; $args['searchData'][] = $recipientsMatch;
} }
if (!empty($body['recipients']) && !empty($body['recipients']['values']) && is_array($body['recipients']['values']) && is_string($body['recipients']['values'][0])) { if (!empty($body['recipients']) && !empty($body['recipients']['values']) && is_array($body['recipients']['values']) && is_string($body['recipients']['values'][0])) {
$fields = AutoCompleteController::getInsensitiveFieldsForRequest(['fields' => ['company']]); $fieldsToCompleteRecipientsBy = [
'firstname',
'lastname',
'company',
'department',
'function',
'address_number',
'address_street',
'address_additional1',
'address_additional2',
'address_postcode',
'address_town',
'address_country',
'email',
'phone'
];
$fields = AutoCompleteController::getInsensitiveFieldsForRequest(['fields' => $fieldsToCompleteRecipientsBy]);
$requestData = AutoCompleteController::getDataForRequest([ $requestData = AutoCompleteController::getDataForRequest([
'search' => $body['recipients']['values'][0], 'search' => trim($body['recipients']['values'][0]),
'fields' => $fields, 'fields' => $fields,
'fieldsNumber' => 1 'fieldsNumber' => count($fieldsToCompleteRecipientsBy)
]); ]);
$contacts = ContactModel::get([ $contacts = ContactModel::get([
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment