Merge pull request #5827 from turbo124/v5-develop

Refactor for Zipping backups
This commit is contained in:
David Bomba 2021-05-26 18:47:33 +10:00 committed by GitHub
commit b1879e835b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 20 deletions

View File

@ -431,30 +431,20 @@ class CompanyExport implements ShouldQueue
private function zipAndSend() 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'); $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(); if ($zip->open($zip_path, \ZipArchive::CREATE)!==TRUE) {
fwrite($fp, json_encode($this->export_data)); nlog("cannot open {$zip_path}");
rewind($fp); }
$zip->addFileFromStream('backup.json', $fp);
$zip->finish(); $zip->addFromString("backup.json", json_encode($this->export_data));
$zip->close();
$path = 'backups/';
Storage::disk(config('filesystems.default'))->put($path.$file_name, $tempStream);
fclose($tempStream);
$nmo = new NinjaMailerObject; $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->to_user = $this->user;
$nmo->company = $this->company; $nmo->company = $this->company;
$nmo->settings = $this->company->settings; $nmo->settings = $this->company->settings;

View File

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

View File

@ -107,6 +107,8 @@ class UserTest extends TestCase
$data = $user->toArray(); $data = $user->toArray();
$response = false;
try { try {
$response = $this->withHeaders([ $response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'), 'X-API-SECRET' => config('ninja.api_secret'),