1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-21 00:41:34 +02:00

Fixes for system maintenance

This commit is contained in:
David Bomba 2023-11-12 18:22:07 +11:00
parent a338bd3fec
commit 36187287a9

View File

@ -12,6 +12,7 @@
namespace App\Jobs\Ninja;
use App\Models\Backup;
use App\Models\Company;
use App\Models\Credit;
use App\Models\Invoice;
use App\Models\Quote;
@ -20,6 +21,7 @@ use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Storage;
class SystemMaintenance implements ShouldQueue
{
@ -114,4 +116,45 @@ class SystemMaintenance implements ShouldQueue
$backup->delete();
});
}
private function cleanPdfs()
{
$company_keys = Company::query()
->pluck('company_key')
->toArray();
$directories = Storage::disk(config('filesystems.default'))->directories();
$del_dirs = ['quotes','invoices','credits','recurring_invoices', 'e_invoice'];
collect($directories)->each(function ($parent_directory) use ($del_dirs, $company_keys) {
if (! in_array($parent_directory, $company_keys)) {
nlog("Deleting {$parent_directory}");
/* Ensure we are not deleting the root folder */
if (strlen($parent_directory) > 1) {
nlog("Company No Longer Exists => deleting {$parent_directory}");
Storage::disk(config('filesystems.default'))->deleteDirectory($parent_directory);
return;
}
}
$sub_directories = Storage::allDirectories($parent_directory);
collect($sub_directories)->each(function ($sub_dir) use ($del_dirs) {
foreach($del_dirs as $del_dir) {
if(stripos($sub_dir, $del_dir) !== false) {
nlog("Deleting {$sub_dir} as it matches {$del_dir}");
Storage::deleteDirectory($sub_dir);
}
}
});
});
}
}