update pagging data table material
This commit is contained in:
@@ -34,8 +34,9 @@ class MaterialController extends ApiController
|
|||||||
|
|
||||||
$data = $this->service->list($filters);
|
$data = $this->service->list($filters);
|
||||||
|
|
||||||
return $this->success(
|
return $this->successPaginated(
|
||||||
MaterialResource::collection($data),
|
$data,
|
||||||
|
MaterialResource::class,
|
||||||
'List material user berhasil diambil'
|
'List material user berhasil diambil'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
namespace App\Traits;
|
namespace App\Traits;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
trait ApiResponse
|
trait ApiResponse
|
||||||
{
|
{
|
||||||
protected function success($data = null, string $message = 'Success', int $code = 200)
|
protected function success($data = null, string $message = 'Success', int $code = 200)
|
||||||
@@ -70,4 +73,45 @@ trait ApiResponse
|
|||||||
'message' => $message
|
'message' => $message
|
||||||
], 404);
|
], 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function successPaginated(
|
||||||
|
LengthAwarePaginator $data,
|
||||||
|
string $resource,
|
||||||
|
string $message = 'Success',
|
||||||
|
int $code = 200
|
||||||
|
) {
|
||||||
|
return response()->json([
|
||||||
|
'success' => true,
|
||||||
|
'code' => $code,
|
||||||
|
'message' => $message,
|
||||||
|
|
||||||
|
'data' => $resource::collection($data->items()),
|
||||||
|
|
||||||
|
'pagination' => [
|
||||||
|
'current_page' => $data->currentPage(),
|
||||||
|
'per_page' => $data->perPage(),
|
||||||
|
'from' => $data->firstItem(),
|
||||||
|
'to' => $data->lastItem(),
|
||||||
|
'last_page' => $data->lastPage(),
|
||||||
|
'total' => $data->total(),
|
||||||
|
|
||||||
|
'has_more' => $data->hasMorePages(),
|
||||||
|
'count' => count($data->items()),
|
||||||
|
|
||||||
|
'next_page' => $data->nextPageUrl(),
|
||||||
|
'prev_page' => $data->previousPageUrl(),
|
||||||
|
'first_page' => $data->url(1),
|
||||||
|
'last_page_url'=> $data->url($data->lastPage()),
|
||||||
|
],
|
||||||
|
|
||||||
|
'filters' => [
|
||||||
|
'page' => (int) request()->input('page', 1),
|
||||||
|
'per_page' => (int) request()->input('per_page', 15),
|
||||||
|
'search' => request()->input('search'),
|
||||||
|
'sort_by' => request()->input('sort_by'),
|
||||||
|
'sort_order' => request()->input('sort_order', 'desc'),
|
||||||
|
'type' => request()->input('type'),
|
||||||
|
]
|
||||||
|
], $code);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user