argument('key'); $job = ImportJob::whereKey($jobKey)->first(); if (is_null($job)) { $this->error('This job does not seem to exist.'); return; } if ($job->status != 'settings_complete') { $this->error('This job is not ready to be imported.'); return; } $this->line('Going to import job with key "' . $job->key . '" of type ' . $job->file_type); $valid = array_keys(config('firefly.import_formats')); $class = 'INVALID'; if (in_array($job->file_type, $valid)) { $class = config('firefly.import_formats.' . $job->file_type); } /** @var ImporterInterface $importer */ $importer = app($class); $importer->setJob($job); // intercept logging by importer. $monolog = Log::getMonolog(); $handler = new CommandHandler($this); $monolog->pushHandler($handler); // create import entries $collection = $importer->createImportEntries(); // validate / clean collection: $validator = new ImportValidator($collection); $validator->setUser($job->user); if ($job->configuration['import-account'] != 0) { $repository = app(AccountCrud::class, [$job->user]); $validator->setDefaultImportAccount($repository->find($job->configuration['import-account'])); } $cleaned = $validator->clean(); // then import collection: $storage = new ImportStorage($cleaned); $storage->setUser($job->user); // and run store routine: $storage->store(); $this->line('Something something import: ' . $jobKey); } }