MediaController::loadMedia refactor

This commit is contained in:
Jérémy Munsch 2023-12-14 13:21:05 +01:00
parent 27d0f7ff70
commit e0ca3acf23
No known key found for this signature in database
GPG key ID: 18361AF3BFEC0FEC

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;
@ -102,7 +103,7 @@ class MediaController extends Controller
$textSearch,
$filters,
intval(Dossier::where('id', $dossier_id)->exists() ?
$dossier_id : (in_array($dossier_id, [-1, 0]) ? $dossier_id : -1))
$dossier_id : (in_array($dossier_id, [-1, 0]) ? $dossier_id : -1))
);
}
@ -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);
}
@ -262,7 +271,7 @@ class MediaController extends Controller
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Media> */
$mediaList = Media::whereIn('id', collect($request->mediaList)->pluck('id'))
->where('isLocked', false)->get();
->where('isLocked', false)->get();
$destinationDossierId = \intval($request->dossier_id);
@ -346,7 +355,7 @@ class MediaController extends Controller
});
} catch (ModelNotFoundException | \RuntimeException $e) {
return response()->json($e->getMessage(), 500);
}//end try
} //end try
}
/**
@ -416,7 +425,7 @@ class MediaController extends Controller
'status' => false,
'error' => trans('Une erreur est survenue veuillez réessayer')
]);
}//end try
} //end try
}
/**
@ -751,8 +760,8 @@ class MediaController extends Controller
$history = Historique::whereHas('media', function ($q) use ($media) {
$q->whereId($media->id);
})->with('user')
->orderBy('created_date', 'DESC')
->get();
->orderBy('created_date', 'DESC')
->get();
return \response()->json([
'history' => $history,
'vignettes' => $this->getVignettesByMedia($media)
@ -1062,9 +1071,9 @@ class MediaController extends Controller
];
$sys_extension = in_array($media->extension, [
MediaExtension::pdf,
MediaExtension::ai,
MediaExtension::psd
MediaExtension::pdf,
MediaExtension::ai,
MediaExtension::psd
]) ? MediaExtension::png : $media->extension->value;
$vignettes['preview'] = [