diff options
author | Khaled Lela <eng.khaled.lela@gmail.com> | 2022-02-23 17:30:18 +0200 |
---|---|---|
committer | Khaled Lela <eng.khaled.lela@gmail.com> | 2022-02-23 17:30:18 +0200 |
commit | 853e7ded74f589164a2ebce5fd6a0502639d54a1 (patch) | |
tree | 5a365ec0c9bb7709c7f5e9606774442be640e906 /src | |
parent | b518a5bbc9e18f6a2ac1827e24e733ec508ff0d5 (diff) |
handle scorm archive ot found, update config
Diffstat (limited to 'src')
-rw-r--r-- | src/Manager/ScormDisk.php | 19 | ||||
-rw-r--r-- | src/Model/ScormModel.php | 11 |
2 files changed, 22 insertions, 8 deletions
diff --git a/src/Manager/ScormDisk.php b/src/Manager/ScormDisk.php index cb09db5..5f15d38 100644 --- a/src/Manager/ScormDisk.php +++ b/src/Manager/ScormDisk.php @@ -2,6 +2,7 @@ namespace Peopleaps\Scorm\Manager; +use Exception; use Illuminate\Filesystem\FilesystemAdapter; use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\Storage; @@ -45,14 +46,18 @@ class ScormDisk */ public function readScormArchive($file, callable $fn) { - if (Storage::exists($file)) { - Storage::delete($file); + try { + if (Storage::exists($file)) { + Storage::delete($file); + } + Storage::writeStream($file, $this->getArchiveDisk()->readStream($file)); + $path = Storage::path($file); + call_user_func($fn, $path); + unlink($path); // delete temp package + Storage::deleteDirectory(dirname($file)); // delete temp dir + } catch (Exception $ex) { + throw new StorageNotFoundException('scorm_archive_not_found'); } - Storage::writeStream($file, $this->getArchiveDisk()->readStream($file)); - $path = Storage::path($file); - call_user_func($fn, $path); - unlink($path); // delete temp package - Storage::deleteDirectory(dirname($file)); // delete temp dir } /** diff --git a/src/Model/ScormModel.php b/src/Model/ScormModel.php index 2777038..61ccb16 100644 --- a/src/Model/ScormModel.php +++ b/src/Model/ScormModel.php @@ -20,7 +20,16 @@ class ScormModel extends Model return config('scorm.table_names.scorm_table', parent::getTable()); } - public function scos() { + public function scos() + { return $this->hasMany(ScormScoModel::class, 'scorm_id', 'id'); } + + /** + * @return HasOne + */ + public function resource() + { + return $this->hasOne(config('scorm.table_names.resource_table')); + } } |