mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-06 00:04:03 +00:00
Merge branch 'master' into shift-64622
This commit is contained in:
commit
042beecb9c
4 changed files with 85 additions and 2 deletions
|
|
@ -40,7 +40,13 @@ class TenancyServiceProvider extends ServiceProvider
|
||||||
Events\TenantSaved::class => [],
|
Events\TenantSaved::class => [],
|
||||||
Events\UpdatingTenant::class => [],
|
Events\UpdatingTenant::class => [],
|
||||||
Events\TenantUpdated::class => [],
|
Events\TenantUpdated::class => [],
|
||||||
Events\DeletingTenant::class => [],
|
Events\DeletingTenant::class => [
|
||||||
|
JobPipeline::make([
|
||||||
|
Jobs\DeleteDomains::class,
|
||||||
|
])->send(function (Events\DeletingTenant $event) {
|
||||||
|
return $event->tenant;
|
||||||
|
})->shouldBeQueued(false),
|
||||||
|
],
|
||||||
Events\TenantDeleted::class => [
|
Events\TenantDeleted::class => [
|
||||||
JobPipeline::make([
|
JobPipeline::make([
|
||||||
Jobs\DeleteDatabase::class,
|
Jobs\DeleteDatabase::class,
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ class CreateDomainsTable extends Migration
|
||||||
$table->string('tenant_id');
|
$table->string('tenant_id');
|
||||||
|
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->foreign('tenant_id')->references('id')->on('tenants')->onUpdate('cascade')->onDelete('cascade');
|
$table->foreign('tenant_id')->references('id')->on('tenants')->onUpdate('cascade');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
35
src/Jobs/DeleteDomains.php
Normal file
35
src/Jobs/DeleteDomains.php
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Stancl\Tenancy\Jobs;
|
||||||
|
|
||||||
|
use Illuminate\Bus\Queueable;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
use Stancl\Tenancy\Contracts\TenantWithDatabase;
|
||||||
|
use Stancl\Tenancy\Database\Models\Domain;
|
||||||
|
use Stancl\Tenancy\Events\DatabaseDeleted;
|
||||||
|
use Stancl\Tenancy\Events\DeletingDatabase;
|
||||||
|
use Stancl\Tenancy\Events\DeletingDomain;
|
||||||
|
use Stancl\Tenancy\Events\DomainDeleted;
|
||||||
|
|
||||||
|
class DeleteDomains
|
||||||
|
{
|
||||||
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||||
|
|
||||||
|
/** @var TenantWithDatabase */
|
||||||
|
protected $tenant;
|
||||||
|
|
||||||
|
public function __construct(TenantWithDatabase $tenant)
|
||||||
|
{
|
||||||
|
$this->tenant = $tenant;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
$this->tenant->domains->each->delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
42
tests/DeleteDomainsJobTest.php
Normal file
42
tests/DeleteDomainsJobTest.php
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Stancl\Tenancy\Tests;
|
||||||
|
|
||||||
|
use Stancl\Tenancy\Database\Concerns\HasDomains;
|
||||||
|
use Stancl\Tenancy\Jobs\DeleteDomains;
|
||||||
|
|
||||||
|
class DeleteDomainsJobTest extends TestCase
|
||||||
|
{
|
||||||
|
public function setUp(): void
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
|
||||||
|
config(['tenancy.tenant_model' => DatabaseAndDomainTenant::class]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @test */
|
||||||
|
public function job_delete_domains_successfully()
|
||||||
|
{
|
||||||
|
$tenant = DatabaseAndDomainTenant::create();
|
||||||
|
|
||||||
|
$tenant->domains()->create([
|
||||||
|
'domain' => 'foo.localhost',
|
||||||
|
]);
|
||||||
|
$tenant->domains()->create([
|
||||||
|
'domain' => 'bar.localhost',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->assertSame($tenant->domains()->count(), 2);
|
||||||
|
|
||||||
|
(new DeleteDomains($tenant))->handle();
|
||||||
|
|
||||||
|
$this->assertSame($tenant->refresh()->domains()->count(), 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DatabaseAndDomainTenant extends Etc\Tenant
|
||||||
|
{
|
||||||
|
use HasDomains;
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue