Browse Source

Update console kernel

Daniel Supernault 4 years ago
parent
commit
dab051ecb9
2 changed files with 61 additions and 0 deletions
  1. 60 0
      app/Console/Commands/FixSoftDeletedProfile.php
  2. 1 0
      app/Console/Kernel.php

+ 60 - 0
app/Console/Commands/FixSoftDeletedProfile.php

@@ -0,0 +1,60 @@
+<?php
+
+namespace App\Console\Commands;
+
+use Illuminate\Console\Command;
+use App\Profile;
+use App\User;
+
+class FixSoftDeletedProfile extends Command
+{
+    /**
+     * The name and signature of the console command.
+     *
+     * @var string
+     */
+    protected $signature = 'fix:sdprofile';
+
+    /**
+     * The console command description.
+     *
+     * @var string
+     */
+    protected $description = 'Command description';
+
+    /**
+     * Create a new command instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        parent::__construct();
+    }
+
+    /**
+     * Execute the console command.
+     *
+     * @return int
+     */
+    public function handle()
+    {
+        $profiles = Profile::whereNull('domain')
+            ->withTrashed()
+            ->where('deleted_at', '>', now()->subDays(14))
+            ->whereNull('status')
+            ->pluck('username');
+
+        if($profiles->count() == 0) {
+            return 0;
+        }
+
+        foreach($profiles as $p) {
+            if(User::whereUsername($p)->first()->status == null) {
+                $pro = Profile::withTrashed()->whereUsername($p)->firstOrFail();
+                $pro->deleted_at = null;
+                $pro->save();
+            }
+        }
+    }
+}

+ 1 - 0
app/Console/Kernel.php

@@ -31,6 +31,7 @@ class Kernel extends ConsoleKernel
                  ->hourly();
         $schedule->command('horizon:snapshot')->everyFiveMinutes();
         $schedule->command('story:gc')->everyFiveMinutes();
+        $schedule->command('fix:sdprofile')->everyFiveMinutes();
         $schedule->command('gc:failedjobs')->dailyAt(3);
         $schedule->command('gc:passwordreset')->dailyAt('09:41');
     }