diff --git a/application/Espo/Classes/Jobs/CheckEmailAccounts.php b/application/Espo/Classes/Jobs/CheckEmailAccounts.php index b47705c770..e6844beaaa 100644 --- a/application/Espo/Classes/Jobs/CheckEmailAccounts.php +++ b/application/Espo/Classes/Jobs/CheckEmailAccounts.php @@ -31,7 +31,7 @@ namespace Espo\Classes\Jobs; use Espo\Core\Exceptions\Error; -use Espo\Core\Mail\Account\PersonalAccountService as Service; +use Espo\Core\Mail\Account\PersonalAccount\Service; use Espo\Core\Job\Job; use Espo\Core\Job\Job\Data; diff --git a/application/Espo/Classes/Jobs/CheckInboundEmails.php b/application/Espo/Classes/Jobs/CheckInboundEmails.php index 8963f28b25..274242e2c3 100644 --- a/application/Espo/Classes/Jobs/CheckInboundEmails.php +++ b/application/Espo/Classes/Jobs/CheckInboundEmails.php @@ -30,7 +30,7 @@ namespace Espo\Classes\Jobs; use Espo\Core\Exceptions\Error; -use Espo\Core\Mail\Account\GroupAccountService as Service; +use Espo\Core\Mail\Account\GroupAccount\Service; use Espo\Core\Job\Job; use Espo\Core\Job\Job\Data; diff --git a/application/Espo/Controllers/EmailAccount.php b/application/Espo/Controllers/EmailAccount.php index fa9dad50c3..9381b165fc 100644 --- a/application/Espo/Controllers/EmailAccount.php +++ b/application/Espo/Controllers/EmailAccount.php @@ -29,7 +29,7 @@ namespace Espo\Controllers; -use Espo\Core\Mail\Account\PersonalAccountService as Service; +use Espo\Core\Mail\Account\PersonalAccount\Service; use Espo\Core\Mail\Account\Storage\Params as StorageParams; use Espo\Core\Controllers\Record; diff --git a/application/Espo/Controllers/InboundEmail.php b/application/Espo/Controllers/InboundEmail.php index cf78c885e8..5f7060296f 100644 --- a/application/Espo/Controllers/InboundEmail.php +++ b/application/Espo/Controllers/InboundEmail.php @@ -29,7 +29,7 @@ namespace Espo\Controllers; -use Espo\Core\Mail\Account\GroupAccountService as Service; +use Espo\Core\Mail\Account\GroupAccount\Service; use Espo\Core\Mail\Account\Storage\Params as StorageParams; use Espo\Core\Controllers\Record; diff --git a/application/Espo/Core/Binding/DefaultBinding.php b/application/Espo/Core/Binding/DefaultBinding.php index d8d4195329..351ed5798a 100644 --- a/application/Espo/Core/Binding/DefaultBinding.php +++ b/application/Espo/Core/Binding/DefaultBinding.php @@ -245,25 +245,25 @@ class DefaultBinding implements BindingProcessor private function bindEmailAccount(Binder $binder): void { $binder - ->for('Espo\\Core\\Mail\\Account\\PersonalAccountService') + ->for('Espo\\Core\\Mail\\Account\\PersonalAccount\\Service') ->bindFactory( 'Espo\\Core\\Mail\\Account\\Fetcher', - 'Espo\\Core\\Mail\\Account\\PersonalAccountFetcherFactory' + 'Espo\\Core\\Mail\\Account\\PersonalAccount\\FetcherFactory' ) ->bindImplementation( 'Espo\\Core\\Mail\\Account\\StorageFactory', - 'Espo\\Core\\Mail\\Account\\PersonalAccountStorageFactory' + 'Espo\\Core\\Mail\\Account\\PersonalAccount\\StorageFactory' ); $binder - ->for('Espo\\Core\\Mail\\Account\\GroupAccountService') + ->for('Espo\\Core\\Mail\\Account\\GroupAccount\\Service') ->bindFactory( 'Espo\\Core\\Mail\\Account\\Fetcher', - 'Espo\\Core\\Mail\\Account\\GroupAccountFetcherFactory' + 'Espo\\Core\\Mail\\Account\\GroupAccount\\FetcherFactory' ) ->bindImplementation( 'Espo\\Core\\Mail\\Account\\StorageFactory', - 'Espo\\Core\\Mail\\Account\\GroupAccountStorageFactory' + 'Espo\\Core\\Mail\\Account\\GroupAccount\\StorageFactory' ); } } diff --git a/application/Espo/Core/Mail/Account/GroupAccount.php b/application/Espo/Core/Mail/Account/GroupAccount/Account.php similarity index 97% rename from application/Espo/Core/Mail/Account/GroupAccount.php rename to application/Espo/Core/Mail/Account/GroupAccount/Account.php index 5082b4825d..6461767a27 100644 --- a/application/Espo/Core/Mail/Account/GroupAccount.php +++ b/application/Espo/Core/Mail/Account/GroupAccount/Account.php @@ -27,7 +27,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Mail\Account; +namespace Espo\Core\Mail\Account\GroupAccount; use Espo\Core\Field\Date; use Espo\Core\Field\Link; @@ -40,9 +40,11 @@ use Espo\Entities\Email; use Espo\ORM\EntityManager; +use Espo\Core\Mail\Account\Account as AccountInterface; + use stdClass; -class GroupAccount implements Account +class Account implements AccountInterface { private InboundEmail $entity; diff --git a/application/Espo/Core/Mail/Account/GroupAccountFactory.php b/application/Espo/Core/Mail/Account/GroupAccount/AccountFactory.php similarity index 91% rename from application/Espo/Core/Mail/Account/GroupAccountFactory.php rename to application/Espo/Core/Mail/Account/GroupAccount/AccountFactory.php index 452831566e..e10c819c01 100644 --- a/application/Espo/Core/Mail/Account/GroupAccountFactory.php +++ b/application/Espo/Core/Mail/Account/GroupAccount/AccountFactory.php @@ -27,7 +27,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Mail\Account; +namespace Espo\Core\Mail\Account\GroupAccount; use Espo\Core\Exceptions\Error; use Espo\Core\InjectableFactory; @@ -37,7 +37,7 @@ use Espo\Entities\InboundEmail; use Espo\ORM\EntityManager; -class GroupAccountFactory +class AccountFactory { private InjectableFactory $injectableFactory; @@ -49,7 +49,7 @@ class GroupAccountFactory $this->entityManager = $entityManager; } - public function create(string $id): GroupAccount + public function create(string $id): Account { $entity = $this->entityManager->getEntityById(InboundEmail::ENTITY_TYPE, $id); @@ -61,6 +61,6 @@ class GroupAccountFactory ->bindInstance(InboundEmail::class, $entity) ->build(); - return $this->injectableFactory->createWithBinding(GroupAccount::class, $binding); + return $this->injectableFactory->createWithBinding(Account::class, $binding); } } diff --git a/application/Espo/Core/Mail/Account/GroupAccountFetcherFactory.php b/application/Espo/Core/Mail/Account/GroupAccount/FetcherFactory.php similarity index 84% rename from application/Espo/Core/Mail/Account/GroupAccountFetcherFactory.php rename to application/Espo/Core/Mail/Account/GroupAccount/FetcherFactory.php index 5ac77e143e..dbc7492b2e 100644 --- a/application/Espo/Core/Mail/Account/GroupAccountFetcherFactory.php +++ b/application/Espo/Core/Mail/Account/GroupAccount/FetcherFactory.php @@ -27,7 +27,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Mail\Account; +namespace Espo\Core\Mail\Account\GroupAccount; use Espo\Core\Binding\Factory; use Espo\Core\Binding\BindingContainerBuilder; @@ -35,10 +35,14 @@ use Espo\Core\InjectableFactory; use Espo\Core\Mail\Account\Hook\BeforeFetch; use Espo\Core\Mail\Account\Hook\AfterFetch; -use Espo\Core\Mail\Account\Hook\Hooks\GroupAccountBeforeFetch; -use Espo\Core\Mail\Account\Hook\Hooks\GroupAccountAfterFetch; +use Espo\Core\Mail\Account\GroupAccount\Hooks\BeforeFetch as GroupAccountBeforeFetch; +use Espo\Core\Mail\Account\GroupAccount\Hooks\AfterFetch as GroupAccountAfterFetch; -class GroupAccountFetcherFactory implements Factory +use Espo\Core\Mail\Account\StorageFactory; +use Espo\Core\Mail\Account\GroupAccount\StorageFactory as GroupAccountStorageFactory; +use Espo\Core\Mail\Account\Fetcher; + +class FetcherFactory implements Factory { private InjectableFactory $injectableFactory; diff --git a/application/Espo/Core/Mail/Account/Hook/Hooks/GroupAccountAfterFetch.php b/application/Espo/Core/Mail/Account/GroupAccount/Hooks/AfterFetch.php similarity index 98% rename from application/Espo/Core/Mail/Account/Hook/Hooks/GroupAccountAfterFetch.php rename to application/Espo/Core/Mail/Account/GroupAccount/Hooks/AfterFetch.php index 505ae0d37f..4b030fec94 100644 --- a/application/Espo/Core/Mail/Account/Hook/Hooks/GroupAccountAfterFetch.php +++ b/application/Espo/Core/Mail/Account/GroupAccount/Hooks/AfterFetch.php @@ -27,14 +27,14 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Mail\Account\Hook\Hooks; +namespace Espo\Core\Mail\Account\GroupAccount\Hooks; use Laminas\Mail\Message; use Espo\Core\Mail\Account\Account; use Espo\Core\Mail\Account\Hook\BeforeFetchResult; -use Espo\Core\Mail\Account\Hook\AfterFetch; -use Espo\Core\Mail\Account\GroupAccount; +use Espo\Core\Mail\Account\Hook\AfterFetch as AfterFetchInterface; +use Espo\Core\Mail\Account\GroupAccount\Account as GroupAccount; use Espo\Core\Mail\EmailSender; use Espo\Core\Utils\Config; @@ -66,7 +66,7 @@ use Espo\Modules\Crm\Business\Distribution\CaseObj\LeastBusy; use Throwable; use DateTime; -class GroupAccountAfterFetch implements AfterFetch +class AfterFetch implements AfterFetchInterface { private EntityManager $entityManager; diff --git a/application/Espo/Core/Mail/Account/Hook/Hooks/GroupAccountBeforeFetch.php b/application/Espo/Core/Mail/Account/GroupAccount/Hooks/BeforeFetch.php similarity index 97% rename from application/Espo/Core/Mail/Account/Hook/Hooks/GroupAccountBeforeFetch.php rename to application/Espo/Core/Mail/Account/GroupAccount/Hooks/BeforeFetch.php index 1c197eb9e2..f3f365f979 100644 --- a/application/Espo/Core/Mail/Account/Hook/Hooks/GroupAccountBeforeFetch.php +++ b/application/Espo/Core/Mail/Account/GroupAccount/Hooks/BeforeFetch.php @@ -27,9 +27,9 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Mail\Account\Hook\Hooks; +namespace Espo\Core\Mail\Account\GroupAccount\Hooks; -use Espo\Core\Mail\Account\Hook\BeforeFetch; +use Espo\Core\Mail\Account\Hook\BeforeFetch as BeforeFetchInterface; use Espo\Core\Mail\Account\Hook\BeforeFetchResult; use Espo\Core\Mail\Account\Account; @@ -47,7 +47,7 @@ use Espo\Modules\Crm\Services\Campaign as CampaignService; use Throwable; -class GroupAccountBeforeFetch implements BeforeFetch +class BeforeFetch implements BeforeFetchInterface { private Log $log; diff --git a/application/Espo/Core/Mail/Account/GroupAccountService.php b/application/Espo/Core/Mail/Account/GroupAccount/Service.php similarity index 94% rename from application/Espo/Core/Mail/Account/GroupAccountService.php rename to application/Espo/Core/Mail/Account/GroupAccount/Service.php index c9d450cdbd..06f41c7b7f 100644 --- a/application/Espo/Core/Mail/Account/GroupAccountService.php +++ b/application/Espo/Core/Mail/Account/GroupAccount/Service.php @@ -27,22 +27,25 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Mail\Account; +namespace Espo\Core\Mail\Account\GroupAccount; use Laminas\Mail\Message; use Espo\Core\Exceptions\Error; +use Espo\Core\Mail\Account\Fetcher; use Espo\Core\Mail\Account\Storage\Params; +use Espo\Core\Mail\Account\StorageFactory; + use Espo\Core\Utils\Crypt; use RecursiveIteratorIterator; -class GroupAccountService +class Service { private Fetcher $fetcher; - private GroupAccountFactory $accountFactory; + private AccountFactory $accountFactory; private Crypt $crypt; @@ -50,7 +53,7 @@ class GroupAccountService public function __construct( Fetcher $fetcher, - GroupAccountFactory $accountFactory, + AccountFactory $accountFactory, Crypt $crypt, StorageFactory $storageFactory ) { diff --git a/application/Espo/Core/Mail/Account/GroupAccountStorageFactory.php b/application/Espo/Core/Mail/Account/GroupAccount/StorageFactory.php similarity index 95% rename from application/Espo/Core/Mail/Account/GroupAccountStorageFactory.php rename to application/Espo/Core/Mail/Account/GroupAccount/StorageFactory.php index 17663b2cd6..5e951c5482 100644 --- a/application/Espo/Core/Mail/Account/GroupAccountStorageFactory.php +++ b/application/Espo/Core/Mail/Account/GroupAccount/StorageFactory.php @@ -27,17 +27,21 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Mail\Account; +namespace Espo\Core\Mail\Account\GroupAccount; use Espo\Core\Mail\Account\Storage\Params; +use Espo\Core\Mail\Account\Account; +use Espo\Core\Mail\Account\StorageFactory as StorageFactoryInterface; + use Espo\Core\Mail\Mail\Storage\Imap; + use Espo\Core\Utils\Crypt; use Espo\Core\Utils\Log; use Espo\Core\InjectableFactory; use Throwable; -class GroupAccountStorageFactory implements StorageFactory +class StorageFactory implements StorageFactoryInterface { private Crypt $crypt; diff --git a/application/Espo/Core/Mail/Account/PersonalAccount.php b/application/Espo/Core/Mail/Account/PersonalAccount/Account.php similarity index 97% rename from application/Espo/Core/Mail/Account/PersonalAccount.php rename to application/Espo/Core/Mail/Account/PersonalAccount/Account.php index 93b67e10d4..7c14cda993 100644 --- a/application/Espo/Core/Mail/Account/PersonalAccount.php +++ b/application/Espo/Core/Mail/Account/PersonalAccount/Account.php @@ -27,7 +27,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Mail\Account; +namespace Espo\Core\Mail\Account\PersonalAccount; use Espo\Core\Exceptions\Error; @@ -43,9 +43,11 @@ use Espo\Entities\Email; use Espo\ORM\EntityManager; +use Espo\Core\Mail\Account\Account as AccountInterface; + use stdClass; -class PersonalAccount implements Account +class Account implements AccountInterface { private EmailAccount $entity; diff --git a/application/Espo/Core/Mail/Account/PersonalAccountFactory.php b/application/Espo/Core/Mail/Account/PersonalAccount/AccountFactory.php similarity index 91% rename from application/Espo/Core/Mail/Account/PersonalAccountFactory.php rename to application/Espo/Core/Mail/Account/PersonalAccount/AccountFactory.php index 97b1c9d089..3ecae83f8d 100644 --- a/application/Espo/Core/Mail/Account/PersonalAccountFactory.php +++ b/application/Espo/Core/Mail/Account/PersonalAccount/AccountFactory.php @@ -27,7 +27,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Mail\Account; +namespace Espo\Core\Mail\Account\PersonalAccount; use Espo\Core\Exceptions\Error; use Espo\Core\InjectableFactory; @@ -37,7 +37,7 @@ use Espo\Entities\EmailAccount; use Espo\ORM\EntityManager; -class PersonalAccountFactory +class AccountFactory { private InjectableFactory $injectableFactory; @@ -49,7 +49,7 @@ class PersonalAccountFactory $this->entityManager = $entityManager; } - public function create(string $id): PersonalAccount + public function create(string $id): Account { $entity = $this->entityManager->getEntityById(EmailAccount::ENTITY_TYPE, $id); @@ -61,6 +61,6 @@ class PersonalAccountFactory ->bindInstance(EmailAccount::class, $entity) ->build(); - return $this->injectableFactory->createWithBinding(PersonalAccount::class, $binding); + return $this->injectableFactory->createWithBinding(Account::class, $binding); } } diff --git a/application/Espo/Core/Mail/Account/PersonalAccountFetcherFactory.php b/application/Espo/Core/Mail/Account/PersonalAccount/FetcherFactory.php similarity index 85% rename from application/Espo/Core/Mail/Account/PersonalAccountFetcherFactory.php rename to application/Espo/Core/Mail/Account/PersonalAccount/FetcherFactory.php index 6be70b1633..01f86a0ac4 100644 --- a/application/Espo/Core/Mail/Account/PersonalAccountFetcherFactory.php +++ b/application/Espo/Core/Mail/Account/PersonalAccount/FetcherFactory.php @@ -27,16 +27,20 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Mail\Account; +namespace Espo\Core\Mail\Account\PersonalAccount; use Espo\Core\Binding\Factory; use Espo\Core\Binding\BindingContainerBuilder; use Espo\Core\InjectableFactory; use Espo\Core\Mail\Account\Hook\AfterFetch; -use Espo\Core\Mail\Account\Hook\Hooks\PersonalAccountAfterFetch; +use Espo\Core\Mail\Account\PersonalAccount\Hooks\AfterFetch as PersonalAccountAfterFetch; -class PersonalAccountFetcherFactory implements Factory +use Espo\Core\Mail\Account\Fetcher; +use Espo\Core\Mail\Account\StorageFactory; +use Espo\Core\Mail\Account\PersonalAccount\StorageFactory as PersonalAccountStorageFactory; + +class FetcherFactory implements Factory { private InjectableFactory $injectableFactory; diff --git a/application/Espo/Core/Mail/Account/Hook/Hooks/PersonalAccountAfterFetch.php b/application/Espo/Core/Mail/Account/PersonalAccount/Hooks/AfterFetch.php similarity index 93% rename from application/Espo/Core/Mail/Account/Hook/Hooks/PersonalAccountAfterFetch.php rename to application/Espo/Core/Mail/Account/PersonalAccount/Hooks/AfterFetch.php index a31f15998a..084c3e06ff 100644 --- a/application/Espo/Core/Mail/Account/Hook/Hooks/PersonalAccountAfterFetch.php +++ b/application/Espo/Core/Mail/Account/PersonalAccount/Hooks/AfterFetch.php @@ -27,18 +27,18 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Mail\Account\Hook\Hooks; +namespace Espo\Core\Mail\Account\PersonalAccount\Hooks; use Espo\Core\Mail\Account\Account; use Espo\Core\Mail\Account\Hook\BeforeFetchResult; -use Espo\Core\Mail\Account\Hook\AfterFetch; +use Espo\Core\Mail\Account\Hook\AfterFetch as AfterFetchInterface; use Espo\Services\Stream as StreamService; use Espo\Entities\Email; use Espo\ORM\EntityManager; -class PersonalAccountAfterFetch implements AfterFetch +class AfterFetch implements AfterFetchInterface { private EntityManager $entityManager; diff --git a/application/Espo/Core/Mail/Account/PersonalAccountService.php b/application/Espo/Core/Mail/Account/PersonalAccount/Service.php similarity index 95% rename from application/Espo/Core/Mail/Account/PersonalAccountService.php rename to application/Espo/Core/Mail/Account/PersonalAccount/Service.php index c1bd36ee07..d002d4d85f 100644 --- a/application/Espo/Core/Mail/Account/PersonalAccountService.php +++ b/application/Espo/Core/Mail/Account/PersonalAccount/Service.php @@ -27,25 +27,28 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Mail\Account; +namespace Espo\Core\Mail\Account\PersonalAccount; use Laminas\Mail\Message; use Espo\Core\Exceptions\Forbidden; use Espo\Core\Exceptions\Error; +use Espo\Core\Mail\Account\Fetcher; use Espo\Core\Mail\Account\Storage\Params; +use Espo\Core\Mail\Account\StorageFactory; + use Espo\Core\Utils\Crypt; use Espo\Entities\User; use RecursiveIteratorIterator; -class PersonalAccountService +class Service { private Fetcher $fetcher; - private PersonalAccountFactory $accountFactory; + private AccountFactory $accountFactory; private Crypt $crypt; @@ -55,7 +58,7 @@ class PersonalAccountService public function __construct( Fetcher $fetcher, - PersonalAccountFactory $accountFactory, + AccountFactory $accountFactory, Crypt $crypt, StorageFactory $storageFactory, User $user diff --git a/application/Espo/Core/Mail/Account/PersonalAccountStorageFactory.php b/application/Espo/Core/Mail/Account/PersonalAccount/StorageFactory.php similarity index 96% rename from application/Espo/Core/Mail/Account/PersonalAccountStorageFactory.php rename to application/Espo/Core/Mail/Account/PersonalAccount/StorageFactory.php index 127f2522c8..0d74c318e7 100644 --- a/application/Espo/Core/Mail/Account/PersonalAccountStorageFactory.php +++ b/application/Espo/Core/Mail/Account/PersonalAccount/StorageFactory.php @@ -27,10 +27,14 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\Mail\Account; +namespace Espo\Core\Mail\Account\PersonalAccount; use Espo\Core\Mail\Account\Storage\Params; +use Espo\Core\Mail\Account\StorageFactory as StorageFactoryInterface; +use Espo\Core\Mail\Account\Account; + use Espo\Core\Mail\Mail\Storage\Imap; + use Espo\Core\Utils\Crypt; use Espo\Core\Utils\Log; use Espo\Core\InjectableFactory; @@ -42,7 +46,7 @@ use Espo\ORM\EntityManager; use Throwable; -class PersonalAccountStorageFactory implements StorageFactory +class StorageFactory implements StorageFactoryInterface { private Crypt $crypt; diff --git a/application/Espo/Services/EmailAccount.php b/application/Espo/Services/EmailAccount.php index 8bf607db4b..a678967abb 100644 --- a/application/Espo/Services/EmailAccount.php +++ b/application/Espo/Services/EmailAccount.php @@ -35,7 +35,7 @@ use Espo\ORM\Entity; use Espo\Core\Exceptions\Forbidden; use Espo\Core\Exceptions\BadRequest; -use Espo\Core\Mail\Account\PersonalAccountService as AccountService; +use Espo\Core\Mail\Account\PersonalAccount\Service as AccountService; use Espo\Core\Record\CreateParams; use Espo\Entities\EmailAccount as EmailAccountEntity; diff --git a/application/Espo/Services/InboundEmail.php b/application/Espo/Services/InboundEmail.php index bf63985081..963c99a8ce 100644 --- a/application/Espo/Services/InboundEmail.php +++ b/application/Espo/Services/InboundEmail.php @@ -34,7 +34,7 @@ use Laminas\Mail\Message; use Espo\ORM\Entity; use Espo\Core\Exceptions\BadRequest; -use Espo\Core\Mail\Account\GroupAccountService as AccountService; +use Espo\Core\Mail\Account\GroupAccount\Service as AccountService; use Espo\Services\Record as RecordService;