From 41aead5da23c26b0705b1bcb82cab88f966cc20c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20=C5=A0tancl?= Date: Mon, 29 Jun 2020 12:14:58 +0200 Subject: [PATCH] Revert "Get rid of TenantDatabaseDoesNotExist exception" This reverts commit fe52a3c4ea79dfd426199dd2726782fb2433f31d. --- src/Bootstrappers/DatabaseTenancyBootstrapper.php | 7 +++++++ .../TenantCouldNotBeIdentifiedByPathException.php | 2 +- ...CouldNotBeIdentifiedByRequestDataException.php | 2 +- ...enantCouldNotBeIdentifiedOnDomainException.php | 2 +- .../TenantDatabaseDoesNotExistException.php | 15 +++++++++++++++ tests/CachedTenantResolverTest.php | 2 ++ 6 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 src/Exceptions/TenantDatabaseDoesNotExistException.php diff --git a/src/Bootstrappers/DatabaseTenancyBootstrapper.php b/src/Bootstrappers/DatabaseTenancyBootstrapper.php index 54cd34f6..2e3eaacf 100644 --- a/src/Bootstrappers/DatabaseTenancyBootstrapper.php +++ b/src/Bootstrappers/DatabaseTenancyBootstrapper.php @@ -7,6 +7,7 @@ namespace Stancl\Tenancy\Bootstrappers; use Stancl\Tenancy\Contracts\TenancyBootstrapper; use Stancl\Tenancy\Contracts\Tenant; use Stancl\Tenancy\Database\DatabaseManager; +use Stancl\Tenancy\Exceptions\TenantDatabaseDoesNotExistException; class DatabaseTenancyBootstrapper implements TenancyBootstrapper { @@ -20,6 +21,12 @@ class DatabaseTenancyBootstrapper implements TenancyBootstrapper public function bootstrap(Tenant $tenant) { + /** @var TenantWithDatabase $tenant */ + $database = $tenant->database()->getName(); + if (! $tenant->database()->manager()->databaseExists($database)) { + throw new TenantDatabaseDoesNotExistException($database); + } + $this->database->connectToTenant($tenant); } diff --git a/src/Exceptions/TenantCouldNotBeIdentifiedByPathException.php b/src/Exceptions/TenantCouldNotBeIdentifiedByPathException.php index 896c9323..ee870454 100644 --- a/src/Exceptions/TenantCouldNotBeIdentifiedByPathException.php +++ b/src/Exceptions/TenantCouldNotBeIdentifiedByPathException.php @@ -21,7 +21,7 @@ class TenantCouldNotBeIdentifiedByPathException extends TenantCouldNotBeIdentifi return BaseSolution::create('Tenant could not be identified on this path') ->setSolutionDescription('Did you forget to create a tenant for this path?') ->setDocumentationLinks([ - 'Creating Tenants' => 'https://tenancyforlaravel.com/docs/v3/tenants/', + 'Creating Tenants' => 'https://tenancyforlaravel.com/docs/v2/creating-tenants/', // todo update link for v3 ]); } } diff --git a/src/Exceptions/TenantCouldNotBeIdentifiedByRequestDataException.php b/src/Exceptions/TenantCouldNotBeIdentifiedByRequestDataException.php index f0447d96..685c6ef0 100644 --- a/src/Exceptions/TenantCouldNotBeIdentifiedByRequestDataException.php +++ b/src/Exceptions/TenantCouldNotBeIdentifiedByRequestDataException.php @@ -21,7 +21,7 @@ class TenantCouldNotBeIdentifiedByRequestDataException extends TenantCouldNotBeI return BaseSolution::create('Tenant could not be identified with this request data') ->setSolutionDescription('Did you forget to create a tenant with this id?') ->setDocumentationLinks([ - 'Creating Tenants' => 'https://tenancyforlaravel.com/docs/v3/tenants/', + 'Creating Tenants' => 'https://tenancyforlaravel.com/docs/v2/creating-tenants/', // todo update link for v3 ]); } } diff --git a/src/Exceptions/TenantCouldNotBeIdentifiedOnDomainException.php b/src/Exceptions/TenantCouldNotBeIdentifiedOnDomainException.php index 66bc1db8..127407d9 100644 --- a/src/Exceptions/TenantCouldNotBeIdentifiedOnDomainException.php +++ b/src/Exceptions/TenantCouldNotBeIdentifiedOnDomainException.php @@ -21,7 +21,7 @@ class TenantCouldNotBeIdentifiedOnDomainException extends TenantCouldNotBeIdenti return BaseSolution::create('Tenant could not be identified on this domain') ->setSolutionDescription('Did you forget to create a tenant for this domain?') ->setDocumentationLinks([ - 'Creating Tenants' => 'https://tenancyforlaravel.com/docs/v3/tenants/', + 'Creating Tenants' => 'https://tenancyforlaravel.com/docs/v2/creating-tenants/', // todo update link for v3 ]); } } diff --git a/src/Exceptions/TenantDatabaseDoesNotExistException.php b/src/Exceptions/TenantDatabaseDoesNotExistException.php new file mode 100644 index 00000000..2f6df0f9 --- /dev/null +++ b/src/Exceptions/TenantDatabaseDoesNotExistException.php @@ -0,0 +1,15 @@ +assertTrue($tenant->is(app(DomainTenantResolver::class)->resolve('bar'))); $this->assertNotEmpty(DB::getQueryLog()); // not empty } + + // todo2 at some point in the future, we could write invalidation tests for the other resolvers too }