From b0457bc7b970009809a72e80387c17c4f7f855b2 Mon Sep 17 00:00:00 2001 From: Joseph Cohen Date: Tue, 17 Feb 2015 16:00:38 -0600 Subject: [PATCH] Paginate API incidents --- src/Http/Controllers/Api/IncidentController.php | 5 ++++- src/Repositories/EloquentRepository.php | 12 ++++++++++++ src/Repositories/Incident/IncidentRepository.php | 9 +++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/Http/Controllers/Api/IncidentController.php b/src/Http/Controllers/Api/IncidentController.php index 07c90089..3cddcc3e 100644 --- a/src/Http/Controllers/Api/IncidentController.php +++ b/src/Http/Controllers/Api/IncidentController.php @@ -3,6 +3,7 @@ namespace CachetHQ\Cachet\Http\Controllers\Api; use CachetHQ\Cachet\Repositories\Incident\IncidentRepository; +use CachetHQ\Cachet\Transformers\IncidentTransformer; use Dingo\Api\Routing\ControllerTrait; use GrahamCampbell\Binput\Facades\Binput; use Illuminate\Routing\Controller; @@ -37,7 +38,9 @@ class IncidentController extends Controller */ public function getIncidents() { - return $this->incident->all(); + $incidents = $this->incident->paginate(Binput::get('per_page', 20)); + + return $this->response->paginator($incidents, new IncidentTransformer()); } /** diff --git a/src/Repositories/EloquentRepository.php b/src/Repositories/EloquentRepository.php index 772ccfce..d546a268 100644 --- a/src/Repositories/EloquentRepository.php +++ b/src/Repositories/EloquentRepository.php @@ -17,6 +17,18 @@ abstract class EloquentRepository return $this->model->all(); } + /** + * Returns paginated result. + * + * @param int $perPage + * + * @return \Illuminate\Pagination\Paginator + */ + public function paginate($perPage = 20) + { + return $this->model->paginate($perPage); + } + /** * Returns an object with related relationships. * diff --git a/src/Repositories/Incident/IncidentRepository.php b/src/Repositories/Incident/IncidentRepository.php index 2affb747..d0f9bca6 100644 --- a/src/Repositories/Incident/IncidentRepository.php +++ b/src/Repositories/Incident/IncidentRepository.php @@ -11,6 +11,15 @@ interface IncidentRepository */ public function all(); + /** + * Returns paginated result. + * + * @param int $perPage + * + * @return \Illuminate\Pagination\Paginator + */ + public function paginate($perPage = 20); + /** * Create a new model. *