From 114db744b4e04c14a49dc8ca03fbfd73757b40c8 Mon Sep 17 00:00:00 2001 From: James Collins Date: Thu, 19 Oct 2023 19:20:17 +1000 Subject: [PATCH] better error handling --- app/Http/Controllers/Api/MediaController.php | 3 ++- app/Models/Media.php | 7 ++----- resources/js/components/dialogs/SMDialogMedia.vue | 7 +++++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/Api/MediaController.php b/app/Http/Controllers/Api/MediaController.php index 6b5d16b..c6ffce8 100644 --- a/app/Http/Controllers/Api/MediaController.php +++ b/app/Http/Controllers/Api/MediaController.php @@ -184,6 +184,7 @@ class MediaController extends ApiController array_key_exists('mime_type', $data) === true && $data['mime_type'] !== "") { $error = Media::verifyStorage($data['mime_type'], $data['security']['type'], $data['storage']); + // Log::error($data['mime_type'] . ' - ' . $data['security']['type'] . ' - ' . $data['storage']); switch($error) { case Media::STORAGE_VALID: break; @@ -192,7 +193,7 @@ class MediaController extends ApiController case Media::STORAGE_NOT_FOUND: return $this->respondWithErrors(['storage' => 'Storage was not found.']); case Media::STORAGE_INVALID_SECURITY: - return $this->respondWithErrors(['storage' => 'Storage invalid for security value.']); + return $this->respondWithErrors(['storage' => 'Storage invalid for this security requirement.']); default: return $this->respondWithErrors(['storage' => 'Storage verification error occurred.']); } diff --git a/app/Models/Media.php b/app/Models/Media.php index 209ead9..e951c4b 100644 --- a/app/Models/Media.php +++ b/app/Models/Media.php @@ -1020,11 +1020,8 @@ class Media extends Model $storage = 'private'; } } else { - try { - if(Storage::disk($storage)->exists('') === false) { - return Media::STORAGE_NOT_FOUND; - } - } catch(\Exception $e) { + $disks = config('filesystems.disks'); + if(array_key_exists($storage, $disks) === false) { return Media::STORAGE_NOT_FOUND; } diff --git a/resources/js/components/dialogs/SMDialogMedia.vue b/resources/js/components/dialogs/SMDialogMedia.vue index fcc8b28..cc0e831 100644 --- a/resources/js/components/dialogs/SMDialogMedia.vue +++ b/resources/js/components/dialogs/SMDialogMedia.vue @@ -1088,14 +1088,17 @@ const uploadFileById = (uploadId: string, file: File): void => { content: `Cannot upload the file ${file.name} as it larger than ${max_upload_size.value}.`, }); } else { + const message = error.data.message + ? " " + error.data.message + : ""; + useToastStore().addToast({ title: "File upload error", type: "danger", - content: `Cannot upload the file ${file.name} as a server error occurred.`, + content: `Cannot upload the file ${file.name} as a server error occurred.${message}`, }); } - console.log(error); removeMediaItem(uploadId); }); };