1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-10 13:12:50 +01:00

Refactor for Zipping backups

This commit is contained in:
David Bomba 2021-05-26 18:47:10 +10:00
parent 63725ea743
commit 8df0f6bb27
2 changed files with 13 additions and 20 deletions

View File

@ -431,30 +431,20 @@ class CompanyExport implements ShouldQueue
private function zipAndSend()
{
$tempStream = fopen('php://memory', 'w+');
$options = new Archive();
$options->setOutputStream($tempStream);
$file_name = date('Y-m-d').'_'.str_replace(' ', '_', $this->company->present()->name() . '_' . $this->company->company_key .'.zip');
$zip = new ZipStream($file_name, $options);
$zip_path = public_path('storage/backups/'.$file_name);
$zip = new \ZipArchive();
$fp = tmpfile();
fwrite($fp, json_encode($this->export_data));
rewind($fp);
$zip->addFileFromStream('backup.json', $fp);
if ($zip->open($zip_path, \ZipArchive::CREATE)!==TRUE) {
nlog("cannot open {$zip_path}");
}
$zip->finish();
$path = 'backups/';
Storage::disk(config('filesystems.default'))->put($path.$file_name, $tempStream);
fclose($tempStream);
$zip->addFromString("backup.json", json_encode($this->export_data));
$zip->close();
$nmo = new NinjaMailerObject;
$nmo->mailable = new DownloadBackup(Storage::disk(config('filesystems.default'))->url($path.$file_name), $this->company);
$nmo->mailable = new DownloadBackup(Storage::disk(config('filesystems.default'))->url('backups/'.$file_name), $this->company);
$nmo->to_user = $this->user;
$nmo->company = $this->company;
$nmo->settings = $this->company->settings;

View File

@ -298,8 +298,11 @@ class Import implements ShouldQueue
$data = $this->transformCompanyData($data);
if(Ninja::isHosted())
$data['subdomain'] = MultiDB::randomSubdomainGenerator();
if(Ninja::isHosted() && strlen($data['subdomain']) > 1) {
if(!MultiDB::checkDomainAvailable($data['subdomain']))
$data['subdomain'] = MultiDB::randomSubdomainGenerator();
}
$rules = (new UpdateCompanyRequest())->rules();