1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-02-05 21:14:03 +00:00

Added DeleteDomain Job while deleting tenant.

This commit is contained in:
Abrar Ahmad 2022-07-04 12:29:22 +05:00
parent c7c1736a12
commit bc9194c694
2 changed files with 48 additions and 1 deletions

View file

@ -40,7 +40,13 @@ class TenancyServiceProvider extends ServiceProvider
Events\TenantSaved::class => [],
Events\UpdatingTenant::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 => [
JobPipeline::make([
Jobs\DeleteDatabase::class,

41
src/Jobs/DeleteDomain.php Normal file
View 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));
});
}
}