diff --git a/app/Http/Controllers/InsuranceController.php b/app/Http/Controllers/InsuranceController.php index aea4a84..8b6b4c2 100644 --- a/app/Http/Controllers/InsuranceController.php +++ b/app/Http/Controllers/InsuranceController.php @@ -141,6 +141,36 @@ class InsuranceController extends Controller * enum={"ALL","EDITABLE","STOPPED"} * ) * ), + * @OA\Parameter( + * parameter="page", + * name="page", + * description="Page", + * in="query", + * required=false, + * @OA\Schema( + * type="integer" + * ) + * ), + * @OA\Parameter( + * parameter="perPage", + * name="perPage", + * description="Pas de pagination", + * in="query", + * required=false, + * @OA\Schema( + * type="integer" + * ) + * ), + * @OA\Parameter( + * parameter="pagination", + * name="pagination", + * description="pagination", + * in="query", + * required=false, + * @OA\Schema( + * type="boolean", + * ) + * ), * @OA\Response( * response=200, * description="OK", @@ -167,10 +197,12 @@ class InsuranceController extends Controller $this->validate($request, [ 'user_id' => 'required|integer|exists:users,id', 'type' => 'nullable|in:ALL,EDITABLE,STOPPED', + 'pagination' => 'nullable|boolean' ]); $userId = $request->input('user_id'); $type = $request->input('type'); + $pagination = $request->input('pagination'); $query = NhInsurance::with(['network:id,name', 'beneficiaries'])->where('user_id', $userId); @@ -187,9 +219,15 @@ class InsuranceController extends Controller } } - $insurances = $query->orderBy('created_at', 'DESC')->get(); + $query = $query->orderBy('created_at', 'DESC'); + if ($pagination) { + $insurances = $query->paginate($request->input('perPage', 10)); + } else { + $insurances = $query->get(); + } - foreach ($insurances as $insurance) { + $array = $pagination ? $insurances->items() : $insurances; + foreach ($array as $insurance) { $insurance->state = trans('states.' . $insurance->state); if ($type == 'EDITABLE') {