Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117772699
D5126.1775239133.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
12 KB
Referenced Files
None
Subscribers
None
D5126.1775239133.diff
View Options
diff --git a/src/app/Console/Commands/Job/DomainCreate.php b/src/app/Console/Commands/Job/DomainCreate.php
deleted file mode 100644
--- a/src/app/Console/Commands/Job/DomainCreate.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace App\Console\Commands\Job;
-
-use App\Console\Command;
-
-class DomainCreate extends Command
-{
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'job:domaincreate {domain}';
-
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = "Execute the domain creation job (again).";
-
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $domain = $this->getDomain($this->argument('domain'));
-
- if (!$domain) {
- return 1;
- }
-
- $job = new \App\Jobs\Domain\CreateJob($domain->id);
- $job->handle();
- }
-}
diff --git a/src/app/Console/Commands/Job/DomainUpdate.php b/src/app/Console/Commands/Job/DomainUpdate.php
deleted file mode 100644
--- a/src/app/Console/Commands/Job/DomainUpdate.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace App\Console\Commands\Job;
-
-use App\Console\Command;
-
-class DomainUpdate extends Command
-{
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'job:domainupdate {domain}';
-
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = "Execute the domain update job (again).";
-
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $domain = $this->getDomain($this->argument('domain'));
-
- if (!$domain) {
- return 1;
- }
-
- $job = new \App\Jobs\Domain\UpdateJob($domain->id);
- $job->handle();
- }
-}
diff --git a/src/app/Console/Commands/Job/ResourceCreate.php b/src/app/Console/Commands/Job/ResourceCreate.php
deleted file mode 100644
--- a/src/app/Console/Commands/Job/ResourceCreate.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace App\Console\Commands\Job;
-
-use App\Console\Command;
-
-class ResourceCreate extends Command
-{
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'job:resourcecreate {resource}';
-
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = "Execute the resource creation job (again).";
-
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $resource = $this->getResource($this->argument('resource'));
-
- if (!$resource) {
- return 1;
- }
-
- $job = new \App\Jobs\Resource\CreateJob($resource->id);
- $job->handle();
- }
-}
diff --git a/src/app/Console/Commands/Job/ResourceUpdate.php b/src/app/Console/Commands/Job/ResourceUpdate.php
deleted file mode 100644
--- a/src/app/Console/Commands/Job/ResourceUpdate.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace App\Console\Commands\Job;
-
-use App\Console\Command;
-
-class ResourceUpdate extends Command
-{
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'job:resourceupdate {resource}';
-
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = "Execute the resource update job (again).";
-
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $resource = $this->getResource($this->argument('resource'));
-
- if (!$resource) {
- return 1;
- }
-
- $job = new \App\Jobs\Resource\UpdateJob($resource->id);
- $job->handle();
- }
-}
diff --git a/src/app/Console/Commands/Job/SharedFolderCreate.php b/src/app/Console/Commands/Job/SharedFolderCreate.php
deleted file mode 100644
--- a/src/app/Console/Commands/Job/SharedFolderCreate.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace App\Console\Commands\Job;
-
-use App\Console\Command;
-
-class SharedFolderCreate extends Command
-{
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'job:sharedfoldercreate {folder}';
-
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = "Execute the shared folder creation job (again).";
-
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $folder = $this->getSharedFolder($this->argument('folder'));
-
- if (!$folder) {
- return 1;
- }
-
- $job = new \App\Jobs\SharedFolder\CreateJob($folder->id);
- $job->handle();
- }
-}
diff --git a/src/app/Console/Commands/Job/SharedFolderUpdate.php b/src/app/Console/Commands/Job/SharedFolderUpdate.php
deleted file mode 100644
--- a/src/app/Console/Commands/Job/SharedFolderUpdate.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace App\Console\Commands\Job;
-
-use App\Console\Command;
-
-class SharedFolderUpdate extends Command
-{
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'job:sharedfolderupdate {folder}';
-
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = "Execute the shared folder update job (again).";
-
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $folder = $this->getSharedFolder($this->argument('folder'));
-
- if (!$folder) {
- return 1;
- }
-
- $job = new \App\Jobs\SharedFolder\UpdateJob($folder->id);
- $job->handle();
- }
-}
diff --git a/src/app/Console/Commands/Job/UserCreate.php b/src/app/Console/Commands/Job/UserCreate.php
deleted file mode 100644
--- a/src/app/Console/Commands/Job/UserCreate.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace App\Console\Commands\Job;
-
-use App\Console\Command;
-
-class UserCreate extends Command
-{
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'job:usercreate {user}';
-
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = "Execute the user creation job (again).";
-
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $user = $this->getUser($this->argument('user'));
-
- if (!$user) {
- return 1;
- }
-
- $job = new \App\Jobs\User\CreateJob($user->id);
- $job->handle();
- }
-}
diff --git a/src/app/Console/Commands/Job/UserUpdate.php b/src/app/Console/Commands/Job/UserUpdate.php
deleted file mode 100644
--- a/src/app/Console/Commands/Job/UserUpdate.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace App\Console\Commands\Job;
-
-use App\Console\Command;
-
-class UserUpdate extends Command
-{
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'job:userupdate {user}';
-
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = "Execute the user update job (again).";
-
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $user = $this->getUser($this->argument('user'));
-
- if (!$user) {
- return 1;
- }
-
- $job = new \App\Jobs\User\UpdateJob($user->id);
- $job->handle();
- }
-}
diff --git a/src/app/Console/Commands/Job/WalletCharge.php b/src/app/Console/Commands/Job/WalletCharge.php
deleted file mode 100644
--- a/src/app/Console/Commands/Job/WalletCharge.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace App\Console\Commands\Job;
-
-use App\Console\Command;
-use App\Wallet;
-
-class WalletCharge extends Command
-{
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'job:walletcharge {wallet}';
-
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = "Execute the WalletCharge job (again).";
-
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $wallet = $this->getWallet($this->argument('wallet'));
-
- if (!$wallet) {
- return 1;
- }
-
- $job = new \App\Jobs\WalletCharge($wallet->id);
- $job->handle();
- }
-}
diff --git a/src/app/Console/Commands/Job/WalletCheck.php b/src/app/Console/Commands/Job/WalletCheck.php
deleted file mode 100644
--- a/src/app/Console/Commands/Job/WalletCheck.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace App\Console\Commands\Job;
-
-use App\Console\Command;
-use App\Wallet;
-
-class WalletCheck extends Command
-{
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'job:walletcheck {wallet}';
-
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = "Execute the WalletCheck job (again).";
-
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $wallet = $this->getWallet($this->argument('wallet'));
-
- if (!$wallet) {
- return 1;
- }
-
- $job = new \App\Jobs\WalletCheck($wallet->id);
- $job->handle();
- }
-}
diff --git a/src/app/Console/Commands/JobExecuteCommand.php b/src/app/Console/Commands/JobExecuteCommand.php
new file mode 100644
--- /dev/null
+++ b/src/app/Console/Commands/JobExecuteCommand.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace App\Console\Commands;
+
+use App\Console\Command;
+
+class JobExecuteCommand extends Command
+{
+ /**
+ * The name and signature of the console command.
+ *
+ * @var string
+ */
+ protected $signature = 'job:execute {job} {object}';
+
+ /**
+ * The console command description.
+ *
+ * @var string
+ */
+ protected $description = "Execute a job.";
+
+ /**
+ * Execute the console command.
+ *
+ * @return mixed
+ */
+ public function handle()
+ {
+ $job = $this->argument('job');
+ $object = $this->argument('object');
+
+ $job = str_replace('/', '\\', $job);
+
+ if (preg_match('/^(WalletCheck|WalletCharge)$/', $job)) {
+ $object = $this->getWallet($object);
+ } elseif (preg_match('/^(User|Domain|Group|Resource|SharedFolder).[a-zA-Z]+$/', $job, $m)) {
+ $object = $this->{'get' . $m[1]}($object);
+ } else {
+ $this->error("Invalid or unsupported job name.");
+ return 1;
+ }
+
+ if (empty($object)) {
+ $this->error("Object not found.");
+ return 1;
+ }
+
+ $job = 'App\\Jobs\\' . $job;
+
+ $job = new $job($object->id);
+ $job->handle();
+ }
+}
diff --git a/src/tests/Feature/Console/JobExecuteTest.php b/src/tests/Feature/Console/JobExecuteTest.php
new file mode 100644
--- /dev/null
+++ b/src/tests/Feature/Console/JobExecuteTest.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace Tests\Feature\Console;
+
+use Tests\TestCase;
+
+class JobExecuteTest extends TestCase
+{
+ /**
+ * Test command execution
+ */
+ public function testHandle(): void
+ {
+ // Object that does not exist
+ $code = \Artisan::call("job:execute User/UpdateJob unknown");
+ $output = trim(\Artisan::output());
+
+ $this->assertSame(1, $code);
+ $this->assertSame("Object not found.", $output);
+
+ // Invalid job name
+ $code = \Artisan::call("job:execute Job john@kolab.org");
+ $output = trim(\Artisan::output());
+
+ $this->assertSame(1, $code);
+ $this->assertSame("Invalid or unsupported job name.", $output);
+
+ // Object that exists
+ $code = \Artisan::call("job:execute User/UpdateJob john@kolab.org");
+ $output = trim(\Artisan::output());
+
+ $this->assertSame(0, $code);
+ $this->assertSame('', $output);
+ }
+}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Apr 3, 5:58 PM (1 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18775431
Default Alt Text
D5126.1775239133.diff (12 KB)
Attached To
Mode
D5126: Add generic job:execute command (remove existing job:* commands)
Attached
Detach File
Event Timeline