65 lines
2.6 KiB
PHP
65 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace MintyPHP\Service\Auth;
|
|
|
|
use MintyPHP\Repository\Auth\ApiTokenRepository;
|
|
use MintyPHP\Repository\Auth\ApiTokenRepositoryInterface;
|
|
use MintyPHP\Repository\Auth\EmailVerificationRepository;
|
|
use MintyPHP\Repository\Auth\EmailVerificationRepositoryInterface;
|
|
use MintyPHP\Repository\Auth\PasswordResetRepository;
|
|
use MintyPHP\Repository\Auth\PasswordResetRepositoryInterface;
|
|
use MintyPHP\Repository\Auth\RememberTokenRepository;
|
|
use MintyPHP\Repository\Auth\RememberTokenRepositoryInterface;
|
|
use MintyPHP\Repository\Tenant\TenantMicrosoftAuthRepository;
|
|
use MintyPHP\Repository\Tenant\TenantMicrosoftAuthRepositoryInterface;
|
|
use MintyPHP\Repository\Tenant\TenantRepository;
|
|
use MintyPHP\Repository\Tenant\TenantRepositoryInterface;
|
|
use MintyPHP\Repository\User\UserExternalIdentityRepository;
|
|
use MintyPHP\Repository\User\UserExternalIdentityRepositoryInterface;
|
|
|
|
class AuthRepositoryFactory
|
|
{
|
|
private ?ApiTokenRepository $apiTokenRepository = null;
|
|
private ?RememberTokenRepository $rememberTokenRepository = null;
|
|
private ?PasswordResetRepository $passwordResetRepository = null;
|
|
private ?EmailVerificationRepository $emailVerificationRepository = null;
|
|
private ?TenantRepository $tenantRepository = null;
|
|
private ?TenantMicrosoftAuthRepository $tenantMicrosoftAuthRepository = null;
|
|
private ?UserExternalIdentityRepository $userExternalIdentityRepository = null;
|
|
|
|
public function createApiTokenRepository(): ApiTokenRepositoryInterface
|
|
{
|
|
return $this->apiTokenRepository ??= new ApiTokenRepository();
|
|
}
|
|
|
|
public function createRememberTokenRepository(): RememberTokenRepositoryInterface
|
|
{
|
|
return $this->rememberTokenRepository ??= new RememberTokenRepository();
|
|
}
|
|
|
|
public function createPasswordResetRepository(): PasswordResetRepositoryInterface
|
|
{
|
|
return $this->passwordResetRepository ??= new PasswordResetRepository();
|
|
}
|
|
|
|
public function createEmailVerificationRepository(): EmailVerificationRepositoryInterface
|
|
{
|
|
return $this->emailVerificationRepository ??= new EmailVerificationRepository();
|
|
}
|
|
|
|
public function createTenantRepository(): TenantRepositoryInterface
|
|
{
|
|
return $this->tenantRepository ??= new TenantRepository();
|
|
}
|
|
|
|
public function createTenantMicrosoftAuthRepository(): TenantMicrosoftAuthRepositoryInterface
|
|
{
|
|
return $this->tenantMicrosoftAuthRepository ??= new TenantMicrosoftAuthRepository();
|
|
}
|
|
|
|
public function createUserExternalIdentityRepository(): UserExternalIdentityRepositoryInterface
|
|
{
|
|
return $this->userExternalIdentityRepository ??= new UserExternalIdentityRepository();
|
|
}
|
|
}
|