Fix seed imports

This commit is contained in:
Dane Everitt 2020-06-25 21:16:59 -07:00
parent b55767426f
commit da39d9177e
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
3 changed files with 26 additions and 7 deletions

View file

@ -76,7 +76,16 @@ class EggImporterService
public function handle(UploadedFile $file, int $nest): Egg
{
if ($file->getError() !== UPLOAD_ERR_OK || ! $file->isFile()) {
throw new InvalidFileUploadException(trans('exceptions.nest.importer.file_error'));
throw new InvalidFileUploadException(
sprintf(
'The selected file ["%s"] was not in a valid format to import. (is_file: %s is_valid: %s err_code: %s err: %s)',
$file->getFilename(),
$file->isFile() ? 'true' : 'false',
$file->isValid() ? 'true' : 'false',
$file->getError(),
$file->getErrorMessage()
)
);
}
$parsed = json_decode($file->openFile()->fread($file->getSize()));

View file

@ -57,7 +57,16 @@ class EggUpdateImporterService
public function handle(int $egg, UploadedFile $file)
{
if ($file->getError() !== UPLOAD_ERR_OK || ! $file->isFile()) {
throw new InvalidFileUploadException(trans('exceptions.nest.importer.file_error'));
throw new InvalidFileUploadException(
sprintf(
'The selected file ["%s"] was not in a valid format to import. (is_file: %s is_valid: %s err_code: %s err: %s)',
$file->getFilename(),
$file->isFile() ? 'true' : 'false',
$file->isValid() ? 'true' : 'false',
$file->getError(),
$file->getErrorMessage()
)
);
}
$parsed = json_decode($file->openFile()->fread($file->getSize()));

View file

@ -112,14 +112,15 @@ class EggSeeder extends Seeder
$files = $this->filesystem->allFiles(database_path('seeds/eggs/' . kebab_case($nest->name)));
$this->command->alert('Updating Eggs for Nest: ' . $nest->name);
collect($files)->each(function ($file) use ($nest) {
Collection::make($files)->each(function ($file) use ($nest) {
/* @var \Symfony\Component\Finder\SplFileInfo $file */
$decoded = json_decode($file->getContents());
if (json_last_error() !== JSON_ERROR_NONE) {
return $this->command->error('JSON decode exception for ' . $file->getFilename() . ': ' . json_last_error_msg());
$this->command->error('JSON decode exception for ' . $file->getFilename() . ': ' . json_last_error_msg());
return;
}
$file = new UploadedFile($file->getPathname(), $file->getFilename(), 'application/json', $file->getSize());
$file = new UploadedFile($file->getPathname(), $file->getFilename(), 'application/json');
try {
$egg = $this->repository->setColumns('id')->findFirstWhere([
@ -130,11 +131,11 @@ class EggSeeder extends Seeder
$this->updateImporterService->handle($egg->id, $file);
return $this->command->info('Updated ' . $decoded->name);
$this->command->info('Updated ' . $decoded->name);
} catch (RecordNotFoundException $exception) {
$this->importerService->handle($file, $nest->id);
return $this->command->comment('Created ' . $decoded->name);
$this->command->comment('Created ' . $decoded->name);
}
});