From e107cfd337c00be360061c1fcfd9fe42953db49e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Mon, 25 Jul 2022 12:11:35 +0200 Subject: [PATCH] simplify esFolderSearch --- app/Http/Controllers/MediaController.php | 79 +++++++++++++----------- 1 file changed, 42 insertions(+), 37 deletions(-) diff --git a/app/Http/Controllers/MediaController.php b/app/Http/Controllers/MediaController.php index 149bfbb..cc4e310 100644 --- a/app/Http/Controllers/MediaController.php +++ b/app/Http/Controllers/MediaController.php @@ -840,6 +840,14 @@ class MediaController extends Controller /** @var \App\Models\User */ $user = auth()->user(); + if ($isDepot) { + // * Dossier dépôt + $esMust = array_merge($esMust, [[ + \array_undot(['match.dossier_id' => $dossier->id]) + ]]); + return; + } + if (!$dossier) { if ($request->folder === -1) { // * Recherche globale . @@ -860,45 +868,42 @@ class MediaController extends Controller \array_undot(['match.statut' => config('services.statut.public')]), \array_undot(['match.created_by' => $user->id]) ]); - } elseif (!$isDepot) { - // * Dossier classic . - $esMust = array_merge($esMust, [[ + return; + } //end if + + // * Dossier classic . + $esMust = array_merge($esMust, [[ + \array_undot([ + 'bool.must' => [ + \array_undot(['match.sujet_id' => $sujet->codeSujet]), + \array_undot(['match.dossier_id' => $dossier->id]), + ] + ]) + ]]); + + if (!$user->hasRole(config('roles.const.ADMIN'))) { + $esFilters = array_merge($esFilters, [ \array_undot([ - 'bool.must' => [ - \array_undot(['match.sujet_id' => $sujet->codeSujet]), - \array_undot(['match.dossier_id' => $dossier->id]), - ] + 'bool.should' => [ + \array_undot([ + 'bool.must_not' => [[ + \array_undot([ + 'term.statut.value' => config('services.statut.brouillon'), + 'term.statut.boost' => 1.0 + ]) + ]], + 'bool.adjust_pure_negative' => true, + 'bool.boost' => 1.0 + ]), + \array_undot([ + 'term.created_by.value' => $user->id, + 'term.created_by.boost' => 1.0 + ]) + ], + 'bool.adjust_pure_negative' => true, + 'bool.boost' => 1.0 ]) - ]]); - if (!$user->hasRole(config('roles.const.ADMIN'))) { - $esFilters = array_merge($esFilters, [ - \array_undot([ - 'bool.should' => [ - \array_undot([ - 'bool.must_not' => [[ - \array_undot([ - 'term.statut.value' => config('services.statut.brouillon'), - 'term.statut.boost' => 1.0 - ]) - ]], - 'bool.adjust_pure_negative' => true, - 'bool.boost' => 1.0 - ]), - \array_undot([ - 'term.created_by.value' => $user->id, - 'term.created_by.boost' => 1.0 - ]) - ], - 'bool.adjust_pure_negative' => true, - 'bool.boost' => 1.0 - ]) - ]); - } //end if - } else { - // * Dossier dépôt - $esMust = array_merge($esMust, [[ - \array_undot(['match.dossier_id' => $dossier->id]) - ]]); + ]); } //end if }