From ae30f926bb4f9cd4fdccd58693012376e63f595d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Mon, 25 Jul 2022 10:59:13 +0200 Subject: [PATCH] Done TODO: delete all subject file type for a media on delete --- app/Http/Controllers/MediaController.php | 29 ++++++++++------------- app/Models/Media.php | 30 ++++++++++++++++-------- 2 files changed, 33 insertions(+), 26 deletions(-) diff --git a/app/Http/Controllers/MediaController.php b/app/Http/Controllers/MediaController.php index f1d9905..149bfbb 100644 --- a/app/Http/Controllers/MediaController.php +++ b/app/Http/Controllers/MediaController.php @@ -155,7 +155,7 @@ class MediaController extends Controller $user = auth()->user(); /** @var \App\Models\Dossier|null */ - $dossier = Dossier::where('id', $request->folder)->first(); + $dossier = Dossier::where('id', $request->folder)->first(); $response = []; $filters = (object)collect($request->filters)->all(); @@ -985,25 +985,22 @@ class MediaController extends Controller ]); } - // TODO: \array_undot( herre - $tmpFilters = [ - [ - 'bool' => [ - 'should' => [ - [ - 'bool' => [ - 'must' => $mustLib - ] - ], - [ - 'bool' => [ - 'must' => $mustArt - ] + $tmpFilters = [[ + 'bool' => [ + 'should' => [ + [ + 'bool' => [ + 'must' => $mustLib + ] + ], + [ + 'bool' => [ + 'must' => $mustArt ] ] ] ] - ]; + ]]; } else { // * Search auto $tmpFilters = [ diff --git a/app/Models/Media.php b/app/Models/Media.php index 64d4873..de03827 100644 --- a/app/Models/Media.php +++ b/app/Models/Media.php @@ -526,8 +526,8 @@ class Media extends Model /** * Delete files on path - * * @return void + * @throws \RuntimeException If the media does not have a subject. */ public function deleteFilesOnAllPath() { @@ -536,7 +536,19 @@ class Media extends Model $storage->delete($this->relative_path); $storage->delete($this->thumb_relative_path); $storage->delete($this->preview_relative_path); - // TODO: Add delete forl all sujet formats. + if (!$this->sujet) { + throw new \RuntimeException('This medias does not have any subject wich is forbidden'); + } + + /** @var \Illuminate\Filesystem\FilesystemAdapter */ + $storage = Storage::disk('media'); + + $this->sujet->formats->map(function (Format $format) use ($storage) { + $filePath = "{$this->folder}/{$this->uid}_{$format->libelle}.{$format->extension}"; + if ($storage->exists($filePath)) { + $storage->delete($filePath); + } + }); } /** @@ -612,13 +624,11 @@ class Media extends Model /** @var \Illuminate\Support\Collection<\App\Models\Format> $formats */ $formats = optional($this->sujet)->formats ?? collect(); - foreach ($formats as $format) { - $targetWidth = \floatval($format->largeur); - if (\floatval($format->hauteur) == 0) { - $targetHeight = \floatval(floor(($this->hauteur * $format->largeur) / $this->largeur)); - } else { - $targetHeight = \floatval($format->hauteur); - } + $formats->map(function (Format $format) use ($storage, $im) { + $targetWidth = \floatval($format->largeur); + $targetHeight = \floatval($format->hauteur) == 0 ? + \floatval(floor(($this->hauteur * $format->largeur) / $this->largeur)) : + \floatval($format->hauteur); $im->setImageFormat($format->extension); if ($this->largeur >= $targetWidth || $this->hauteur >= $targetHeight) { @@ -628,7 +638,7 @@ class Media extends Model "{$this->folder}/{$this->uid}_{$format->libelle}.{$format->extension}", $im->getImageBlob() ); - } + }); $im->destroy(); unset($im); }