refactor(arch): enforce gateway compliance and remove service-wrapping gateways
This commit is contained in:
@@ -4,19 +4,18 @@ namespace MintyPHP\Service\AddressBook;
|
||||
|
||||
use MintyPHP\Service\CustomField\CustomFieldServicesFactory;
|
||||
use MintyPHP\Service\Directory\DirectoryServicesFactory;
|
||||
use MintyPHP\Service\Tenant\TenantScopeService;
|
||||
use MintyPHP\Service\User\UserServicesFactory;
|
||||
|
||||
class AddressBookServicesFactory
|
||||
{
|
||||
private ?AddressBookDirectoryGateway $addressBookDirectoryGateway = null;
|
||||
private ?AddressBookCustomFieldGateway $addressBookCustomFieldGateway = null;
|
||||
private ?AddressBookAvatarGateway $addressBookAvatarGateway = null;
|
||||
private ?AddressBookService $addressBookService = null;
|
||||
|
||||
public function __construct(
|
||||
private readonly UserServicesFactory $userServicesFactory,
|
||||
private readonly DirectoryServicesFactory $directoryServicesFactory,
|
||||
private readonly CustomFieldServicesFactory $customFieldServicesFactory
|
||||
private readonly CustomFieldServicesFactory $customFieldServicesFactory,
|
||||
private readonly TenantScopeService $tenantScopeService
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -27,41 +26,16 @@ class AddressBookServicesFactory
|
||||
}
|
||||
|
||||
$userFactory = $this->userServicesFactory;
|
||||
$directoryFactory = $this->directoryServicesFactory;
|
||||
return $this->addressBookService = new AddressBookService(
|
||||
$userFactory->createUserAccountService(),
|
||||
$userFactory->createUserAssignmentService(),
|
||||
$this->createAddressBookDirectoryGateway(),
|
||||
$this->createAddressBookCustomFieldGateway(),
|
||||
$this->createAddressBookAvatarGateway()
|
||||
);
|
||||
}
|
||||
|
||||
public function createAddressBookDirectoryGateway(): AddressBookDirectoryGateway
|
||||
{
|
||||
if ($this->addressBookDirectoryGateway !== null) {
|
||||
return $this->addressBookDirectoryGateway;
|
||||
}
|
||||
|
||||
$directoryFactory = $this->directoryServicesFactory;
|
||||
return $this->addressBookDirectoryGateway = new AddressBookDirectoryGateway(
|
||||
$directoryFactory->createTenantService(),
|
||||
$directoryFactory->createDepartmentService(),
|
||||
$directoryFactory->createRoleService(),
|
||||
$directoryFactory->createDirectoryScopeGateway()
|
||||
);
|
||||
}
|
||||
|
||||
public function createAddressBookCustomFieldGateway(): AddressBookCustomFieldGateway
|
||||
{
|
||||
return $this->addressBookCustomFieldGateway ??= new AddressBookCustomFieldGateway(
|
||||
$this->customFieldServicesFactory->createUserCustomFieldValueService()
|
||||
);
|
||||
}
|
||||
|
||||
public function createAddressBookAvatarGateway(): AddressBookAvatarGateway
|
||||
{
|
||||
return $this->addressBookAvatarGateway ??= new AddressBookAvatarGateway(
|
||||
$this->userServicesFactory->createUserAvatarService()
|
||||
$this->tenantScopeService,
|
||||
$this->customFieldServicesFactory->createUserCustomFieldValueService(),
|
||||
$userFactory->createUserAvatarService()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user