Fix issue when contact is found in some other addressbook

Signed-off-by: Akhil <akhil@e.email>
This commit is contained in:
Akhil 2024-01-19 16:22:12 +05:30
parent cc25129a5e
commit 3c7ef4df46
No known key found for this signature in database
GPG key ID: A8AB680DBB7F3D45

View file

@ -113,20 +113,26 @@ class NextcloudAddressBook implements \RainLoop\Providers\AddressBook\AddressBoo
return false;
}
foreach ($aEmailsObjects as $oEmail) {
$properties = [];
if ('' === \trim($oEmail->GetEmail())) {
continue;
}
$sEmail = \trim($oEmail->GetEmail(true));
$existingResults = $this->contactsManager->search($sEmail, ['EMAIL'], ['strict_search' => true]);
if (!empty($existingResults)) {
$properties['URI'] = $existingResults[0]['UID'] . '.vcf';
}
$properties['EMAIL'] = \trim($sEmail);
$properties = [
'EMAIL' => $sEmail,
'FN' => $sEmail
];
if ('' !== \trim($oEmail->GetDisplayName())) {
$properties['FN'] = $oEmail->GetDisplayName();
} else {
$properties['FN'] = \trim($sEmail);
}
$existingResults = $this->contactsManager->search($sEmail, ['EMAIL'], ['strict_search' => true]);
foreach ($existingResults as $contact) {
if ($contact['addressbook-key'] === $this->key) {
$properties['URI'] = $contact['UID'] . '.vcf';
break;
}
}
$this->contactsManager->createOrUpdate($properties, $this->key);
}