diff --git a/web/app/Console/Commands/RunHostingSubscriptionBackup.php b/web/app/Console/Commands/RunHostingSubscriptionBackup.php new file mode 100644 index 00000000..618968e0 --- /dev/null +++ b/web/app/Console/Commands/RunHostingSubscriptionBackup.php @@ -0,0 +1,83 @@ +subDays(7))->get(); + foreach ($findBackupsForDeleting as $backup) { + $backup->delete(); + } + + // Find Hosting Subscriptions + $findHostingSubscriptions = HostingSubscription::all(); + if ($findHostingSubscriptions->count() > 0) { + foreach ($findHostingSubscriptions as $hostingSubscription) { + + $findBackup = HostingSubscriptionBackup::where('hosting_subscription_id', $hostingSubscription->id) + ->where('backup_type', 'hosting_subscription') + ->where('created_at', '>=', Carbon::now()->subHours(24)) + ->first(); + if (! $findBackup) { + $backup = new HostingSubscriptionBackup(); + $backup->hosting_subscription_id = $hostingSubscription->id; + $backup->backup_type = 'hosting_subscription'; + $backup->save(); + } else { + $this->error('Backup already exists for ' . $hostingSubscription->domain); + $this->error('Created before: ' . $findBackup->created_at->diffForHumans()); + } + } + } + + + // Check for pending backups + $getPendingBackups = HostingSubscriptionBackup::where('status', 'pending') + ->get(); + + if ($getPendingBackups->count() > 0) { + foreach ($getPendingBackups as $pendingBackup) { + $pendingBackup->startBackup(); + $this->info('Backup started.. '); + } + } + + // Check for processing backups + $getRunningBackups = HostingSubscriptionBackup::where('status', 'processing')->get(); + if ($getRunningBackups->count() > 0) { + foreach ($getRunningBackups as $runningBackup) { + $runningBackup->checkBackup(); + $this->info('Checking backup status...'); + } + } + + } +}