Files
breadcrumb-the-shire/lib/Service/Auth/AuthRepositoryFactory.php

73 lines
3.0 KiB
PHP
Raw Normal View History

2026-03-04 15:56:58 +01:00
<?php
namespace MintyPHP\Service\Auth;
use MintyPHP\Repository\Auth\ApiTokenRepository;
2026-03-05 08:26:51 +01:00
use MintyPHP\Repository\Auth\ApiTokenRepositoryInterface;
2026-03-04 15:56:58 +01:00
use MintyPHP\Repository\Auth\EmailVerificationRepository;
2026-03-05 08:26:51 +01:00
use MintyPHP\Repository\Auth\EmailVerificationRepositoryInterface;
2026-03-04 15:56:58 +01:00
use MintyPHP\Repository\Auth\PasswordResetRepository;
2026-03-05 08:26:51 +01:00
use MintyPHP\Repository\Auth\PasswordResetRepositoryInterface;
2026-03-04 15:56:58 +01:00
use MintyPHP\Repository\Auth\RememberTokenRepository;
2026-03-05 08:26:51 +01:00
use MintyPHP\Repository\Auth\RememberTokenRepositoryInterface;
use MintyPHP\Repository\Tenant\TenantLdapAuthRepository;
use MintyPHP\Repository\Tenant\TenantLdapAuthRepositoryInterface;
2026-03-04 15:56:58 +01:00
use MintyPHP\Repository\Tenant\TenantMicrosoftAuthRepository;
2026-03-05 08:26:51 +01:00
use MintyPHP\Repository\Tenant\TenantMicrosoftAuthRepositoryInterface;
2026-03-04 15:56:58 +01:00
use MintyPHP\Repository\Tenant\TenantRepository;
2026-03-05 08:26:51 +01:00
use MintyPHP\Repository\Tenant\TenantRepositoryInterface;
2026-03-04 15:56:58 +01:00
use MintyPHP\Repository\User\UserExternalIdentityRepository;
2026-03-05 08:26:51 +01:00
use MintyPHP\Repository\User\UserExternalIdentityRepositoryInterface;
2026-03-04 15:56:58 +01:00
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 ?TenantLdapAuthRepository $tenantLdapAuthRepository = null;
2026-03-04 15:56:58 +01:00
private ?UserExternalIdentityRepository $userExternalIdentityRepository = null;
2026-03-05 08:26:51 +01:00
public function createApiTokenRepository(): ApiTokenRepositoryInterface
2026-03-04 15:56:58 +01:00
{
return $this->apiTokenRepository ??= new ApiTokenRepository();
}
2026-03-05 08:26:51 +01:00
public function createRememberTokenRepository(): RememberTokenRepositoryInterface
2026-03-04 15:56:58 +01:00
{
return $this->rememberTokenRepository ??= new RememberTokenRepository();
}
2026-03-05 08:26:51 +01:00
public function createPasswordResetRepository(): PasswordResetRepositoryInterface
2026-03-04 15:56:58 +01:00
{
return $this->passwordResetRepository ??= new PasswordResetRepository();
}
2026-03-05 08:26:51 +01:00
public function createEmailVerificationRepository(): EmailVerificationRepositoryInterface
2026-03-04 15:56:58 +01:00
{
return $this->emailVerificationRepository ??= new EmailVerificationRepository();
}
2026-03-05 08:26:51 +01:00
public function createTenantRepository(): TenantRepositoryInterface
2026-03-04 15:56:58 +01:00
{
return $this->tenantRepository ??= new TenantRepository();
}
2026-03-05 08:26:51 +01:00
public function createTenantMicrosoftAuthRepository(): TenantMicrosoftAuthRepositoryInterface
2026-03-04 15:56:58 +01:00
{
return $this->tenantMicrosoftAuthRepository ??= new TenantMicrosoftAuthRepository();
}
public function createTenantLdapAuthRepository(): TenantLdapAuthRepositoryInterface
{
return $this->tenantLdapAuthRepository ??= new TenantLdapAuthRepository();
}
2026-03-05 08:26:51 +01:00
public function createUserExternalIdentityRepository(): UserExternalIdentityRepositoryInterface
2026-03-04 15:56:58 +01:00
{
return $this->userExternalIdentityRepository ??= new UserExternalIdentityRepository();
}
}