MediaController::loadMedia refactor

This commit is contained in:
Jérémy Munsch 2023-12-14 13:21:05 +01:00 • committed by Noah Lancien
parent e18918fa61
commit 92d837586e

View file

@ -38,6 +38,7 @@ use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
@ -156,12 +157,16 @@ class MediaController extends Controller
$user = auth()->user();
/** @var \App\Models\Dossier|null */
$dossier = Dossier::where('id', $request->folder)->first();
$dossier = Dossier::query()
->with('dossierParent')
->where('id', $request->input('folder'))
->first();
$response = [];
$filters = (object)collect($request->filters)->all();
$filters = (object)collect($request->input('filters'))->all();
$isDepot = ($dossier->parent_id ?? null) === 1 || ($dossier->id ?? null) === 1;
/** @var boolean Est un dossier Dépot ? */
$isDepot = !empty($dossier) and (\optional($dossier->dossierParent)->id === 1 || $dossier->id === 1);
/**
* Elastic Search must conditions
@ -220,26 +225,30 @@ class MediaController extends Controller
'bool.should' => $esShould,
'bool.filter' => $esFilters,
]);
$sort = [[$orderField => ['order' => $order]]];
$sort = [[$orderField => ['order' => $order]]];
$response['data'] = Media::searchByQuery(
Arr::set($response, 'data', Media::searchByQuery(
$query,
null,
null,
intval($request->post('limit', 50)),
intval($request->post('offset', 0)),
$sort
));
Arr::set($response, 'draggable', $user->hasRole([
config('roles.const.ADMIN'),
config('roles.const.REDACTEUR')
]));
Arr::set($response, 'isDepot', $isDepot);
Arr::set(
$response,
'isCAQuery',
$searchText &&
strpos($searchText, '=') !== false &&
\strval(collect(explode('=', $searchText))->get(0)) === 'ca'
);
$response['draggable'] = $user->hasRole([config('roles.const.ADMIN'), config('roles.const.REDACTEUR')]);
$response['isDepot'] = $isDepot;
$response['isCAQuery'] = $searchText &&
strpos($searchText, '=') !== false &&
\strval(collect(explode('=', $searchText))->get(0)) === 'ca';
$response['role'] = $user->role;
Arr::set($response, 'role', $user->role);
return \response()->json($response);
}