mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-12 19:14:04 +00:00
[2.x] Add CreateTenant command (#153)
* Add CreateTenant command, fix TenantList output * Create command test
This commit is contained in:
parent
40f8fa346e
commit
d4472469f0
7 changed files with 69 additions and 5 deletions
47
src/Commands/CreateTenant.php
Normal file
47
src/Commands/CreateTenant.php
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Stancl\Tenancy\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use Stancl\Tenancy\Tenant;
|
||||
|
||||
class CreateTenant extends Command
|
||||
{
|
||||
protected $signature = 'tenants:create
|
||||
{--d|domain=* : The tenant\'s domains.}
|
||||
{data?* : The tenant\'s data. Separate keys and values by `=`, e.g. `plan=free`.}';
|
||||
|
||||
protected $description = 'Create a tenant.';
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$tenant = Tenant::new()
|
||||
->withDomains($this->getDomains())
|
||||
->withData($this->getData())
|
||||
->save();
|
||||
|
||||
$this->info($tenant->id);
|
||||
}
|
||||
|
||||
public function getDomains(): array
|
||||
{
|
||||
return $this->option('domain');
|
||||
}
|
||||
|
||||
public function getData(): array
|
||||
{
|
||||
return array_reduce($this->argument('data'), function ($data, $pair) {
|
||||
[$key, $value] = explode('=', $pair, 2);
|
||||
$data[$key] = $value;
|
||||
|
||||
return $data;
|
||||
}, []);
|
||||
}
|
||||
}
|
||||
|
|
@ -31,7 +31,7 @@ class TenantList extends Command
|
|||
{
|
||||
$this->info('Listing all tenants.');
|
||||
tenancy()->all()->each(function ($tenant) {
|
||||
$this->line("[Tenant] id: {$tenant['id']} @ ", implode('; ', $tenant->domains));
|
||||
$this->line("[Tenant] id: {$tenant['id']} @ " . implode('; ', $tenant->domains));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ class TenancyServiceProvider extends ServiceProvider
|
|||
Commands\Migrate::class,
|
||||
Commands\Rollback::class,
|
||||
Commands\TenantList::class,
|
||||
Commands\CreateTenant::class,
|
||||
Commands\MigrateFresh::class,
|
||||
]);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue