diff --git a/application/Espo/Classes/Select/Email/Where/ItemConverters/CcEquals.php b/application/Espo/Classes/Select/Email/Where/ItemConverters/CcEquals.php index 300979f0fa..bd2a19201b 100644 --- a/application/Espo/Classes/Select/Email/Where/ItemConverters/CcEquals.php +++ b/application/Espo/Classes/Select/Email/Where/ItemConverters/CcEquals.php @@ -29,55 +29,7 @@ namespace Espo\Classes\Select\Email\Where\ItemConverters; -use Espo\Core\Select\Helpers\RandomStringGenerator; -use Espo\Core\Select\Where\Item; -use Espo\Core\Select\Where\ItemConverter; -use Espo\Classes\Select\Email\Helpers\EmailAddressHelper; -use Espo\ORM\Query\Part\WhereClause; -use Espo\ORM\Query\Part\WhereItem as WhereClauseItem; -use Espo\ORM\Query\SelectBuilder as QueryBuilder; - -class CcEquals implements ItemConverter +class CcEquals extends ToEquals { - public function __construct( - private EmailAddressHelper $emailAddressHelper, - private RandomStringGenerator $randomStringGenerator - ) {} - - public function convert(QueryBuilder $queryBuilder, Item $item): WhereClauseItem - { - $value = $item->getValue(); - - if (!$value) { - return WhereClause::fromRaw([ - 'id' => null, - ]); - } - - $emailAddressId = $this->emailAddressHelper->getEmailAddressIdByValue($value); - - if (!$emailAddressId) { - return WhereClause::fromRaw([ - 'id' => null, - ]); - } - - $queryBuilder->distinct(); - - $alias = 'emailEmailAddress' . $this->randomStringGenerator->generate(); - - $queryBuilder->leftJoin( - 'EmailEmailAddress', - $alias, - [ - 'emailId:' => 'id', - 'deleted' => false, - ] - ); - - return WhereClause::fromRaw([ - $alias . '.emailAddressId' => $emailAddressId, - $alias . '.addressType' => 'cc', - ]); - } + protected string $addressType = 'cc'; } diff --git a/application/Espo/Classes/Select/Email/Where/ItemConverters/EmailAddressEquals.php b/application/Espo/Classes/Select/Email/Where/ItemConverters/EmailAddressEquals.php index 0316e95f61..1c373bc5c0 100644 --- a/application/Espo/Classes/Select/Email/Where/ItemConverters/EmailAddressEquals.php +++ b/application/Espo/Classes/Select/Email/Where/ItemConverters/EmailAddressEquals.php @@ -49,17 +49,13 @@ class EmailAddressEquals implements ItemConverter $value = $item->getValue(); if (!$value) { - return WhereClause::fromRaw([ - 'id' => null, - ]); + return WhereClause::fromRaw(['id' => null]); } $emailAddressId = $this->emailAddressHelper->getEmailAddressIdByValue($value); if (!$emailAddressId) { - return WhereClause::fromRaw([ - 'id' => null, - ]); + return WhereClause::fromRaw(['id' => null]); } $queryBuilder->distinct(); diff --git a/application/Espo/Classes/Select/Email/Where/ItemConverters/ToEquals.php b/application/Espo/Classes/Select/Email/Where/ItemConverters/ToEquals.php index e88642f8ec..1579ff929b 100644 --- a/application/Espo/Classes/Select/Email/Where/ItemConverters/ToEquals.php +++ b/application/Espo/Classes/Select/Email/Where/ItemConverters/ToEquals.php @@ -39,6 +39,8 @@ use Espo\ORM\Query\SelectBuilder as QueryBuilder; class ToEquals implements ItemConverter { + protected string $addressType = 'to'; + public function __construct( private EmailAddressHelper $emailAddressHelper, private RandomStringGenerator $randomStringGenerator @@ -49,17 +51,13 @@ class ToEquals implements ItemConverter $value = $item->getValue(); if (!$value) { - return WhereClause::fromRaw([ - 'id' => null, - ]); + return WhereClause::fromRaw(['id' => null]); } $emailAddressId = $this->emailAddressHelper->getEmailAddressIdByValue($value); if (!$emailAddressId) { - return WhereClause::fromRaw([ - 'id' => null, - ]); + return WhereClause::fromRaw(['id' => null]); } $queryBuilder->distinct(); @@ -77,7 +75,7 @@ class ToEquals implements ItemConverter return WhereClause::fromRaw([ $alias . '.emailAddressId' => $emailAddressId, - $alias . '.addressType' => 'to', + $alias . '.addressType' => $this->addressType, ]); } }