mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-05 20:54:03 +00:00
Added DeleteDomain Job while deleting tenant.
This commit is contained in:
parent
c7c1736a12
commit
bc9194c694
2 changed files with 48 additions and 1 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\DeleteDomain::class,
|
||||||
|
])->send(function (Events\TenantDeleted $event) {
|
||||||
|
return $event->tenant;
|
||||||
|
})->shouldBeQueued(false), // `false` by default, but you probably want to make this `true` for production.
|
||||||
|
],
|
||||||
Events\TenantDeleted::class => [
|
Events\TenantDeleted::class => [
|
||||||
JobPipeline::make([
|
JobPipeline::make([
|
||||||
Jobs\DeleteDatabase::class,
|
Jobs\DeleteDatabase::class,
|
||||||
|
|
|
||||||
41
src/Jobs/DeleteDomain.php
Normal file
41
src/Jobs/DeleteDomain.php
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?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 DeleteDomain implements ShouldQueue
|
||||||
|
{
|
||||||
|
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||||
|
|
||||||
|
/** @var TenantWithDatabase */
|
||||||
|
protected $tenant;
|
||||||
|
|
||||||
|
public function __construct(TenantWithDatabase $tenant)
|
||||||
|
{
|
||||||
|
$this->tenant = $tenant;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
$this->tenant->domains->each(function (Domain $domain){
|
||||||
|
event(new DeletingDomain($domain));
|
||||||
|
|
||||||
|
$domain->delete();
|
||||||
|
|
||||||
|
event(new DomainDeleted($domain));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue