From 3d45e835e076bb36150a43228141c8b0d3d46119 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20=C5=A0tancl?= Date: Fri, 8 Nov 2019 16:41:56 +0100 Subject: [PATCH] wip --- src/Traits/HasATenantOption.php | 22 ++++++++++++++++++++++ src/Traits/HasATenantsOption.php | 5 +++++ src/Traits/TenantAwareCommand.php | 24 ++++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 src/Traits/HasATenantOption.php create mode 100644 src/Traits/TenantAwareCommand.php diff --git a/src/Traits/HasATenantOption.php b/src/Traits/HasATenantOption.php new file mode 100644 index 00000000..9c641375 --- /dev/null +++ b/src/Traits/HasATenantOption.php @@ -0,0 +1,22 @@ +all($this->option('tenants'))->all(); + } +} diff --git a/src/Traits/HasATenantsOption.php b/src/Traits/HasATenantsOption.php index 4d6b247d..1d1dad94 100644 --- a/src/Traits/HasATenantsOption.php +++ b/src/Traits/HasATenantsOption.php @@ -14,4 +14,9 @@ trait HasATenantsOption ['tenants', null, InputOption::VALUE_IS_ARRAY | InputOption::VALUE_OPTIONAL, '', null], ], parent::getOptions()); } + + protected function getTenants(): array + { + return tenancy()->all($this->option('tenants'))->all(); + } } diff --git a/src/Traits/TenantAwareCommand.php b/src/Traits/TenantAwareCommand.php new file mode 100644 index 00000000..7a38d2fd --- /dev/null +++ b/src/Traits/TenantAwareCommand.php @@ -0,0 +1,24 @@ +run(function () { + $this->laravel->call([$this, 'handle']); + }); + }, $this->getTenants()); + } + + /** + * Get an array of tenants for which the command should be executed. + * + * @return Tenant[] + */ + abstract protected function getTenants(): array; +}