verifyAccessToken()) { $this->error('Invalid access token.'); return; } $this->line('Full export is running...'); // make repositories /** @var UserRepositoryInterface $userRepository */ $userRepository = app(UserRepositoryInterface::class); /** @var ExportJobRepositoryInterface $jobRepository */ $jobRepository = app(ExportJobRepositoryInterface::class); /** @var AccountRepositoryInterface $accountRepository */ $accountRepository = app(AccountRepositoryInterface::class); /** @var JournalRepositoryInterface $journalRepository */ $journalRepository = app(JournalRepositoryInterface::class); // set user $user = $userRepository->find(intval($this->option('user'))); $jobRepository->setUser($user); $journalRepository->setUser($user); $accountRepository->setUser($user); // first date $firstJournal = $journalRepository->first(); $first = new Carbon; if (!is_null($firstJournal->id)) { $first = $firstJournal->date; } // create job and settings. $job = $jobRepository->create(); $settings = [ 'accounts' => $accountRepository->getAccountsByType([AccountType::ASSET, AccountType::DEFAULT]), 'startDate' => $first, 'endDate' => new Carbon, 'exportFormat' => 'csv', 'includeAttachments' => $this->option('with_attachments'), 'includeOldUploads' => $this->option('with_uploads'), 'job' => $job, ]; /** @var ProcessorInterface $processor */ $processor = app(ProcessorInterface::class); $processor->setSettings($settings); $processor->collectJournals(); $processor->convertJournals(); $processor->exportJournals(); if ($settings['includeAttachments']) { $processor->collectAttachments(); } if ($settings['includeOldUploads']) { $processor->collectOldUploads(); } $processor->createZipFile(); $disk = Storage::disk('export'); $fileName = sprintf('export-%s.zip', date('Y-m-d_H-i-s')); $disk->move($job->key . '.zip', $fileName); $this->line('The export has finished! You can find the ZIP file in this location:'); $this->line(storage_path(sprintf('export/%s', $fileName))); return; } }