From 65d70c620ef88731a6de679b5ad4c88ade439786 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Mon, 2 May 2016 23:06:36 +0300 Subject: [PATCH] Enabled setting per_page for API results --- app/Http/Controllers/BaseAPIController.php | 3 ++- app/Http/routes.php | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/BaseAPIController.php b/app/Http/Controllers/BaseAPIController.php index 7bfdfc931c90..489053d055f0 100644 --- a/app/Http/Controllers/BaseAPIController.php +++ b/app/Http/Controllers/BaseAPIController.php @@ -134,8 +134,9 @@ class BaseAPIController extends Controller } if (is_a($query, "Illuminate\Database\Eloquent\Builder")) { + $limit = min(MAX_API_PAGE_SIZE, Input::get('per_page', DEFAULT_API_PAGE_SIZE)); $resource = new Collection($query->get(), $transformer, $entityType); - $resource->setPaginator(new IlluminatePaginatorAdapter($query->paginate())); + $resource->setPaginator(new IlluminatePaginatorAdapter($query->paginate($limit))); } else { $resource = new Collection($query, $transformer, $entityType); } diff --git a/app/Http/routes.php b/app/Http/routes.php index 386d02427e0b..df1f1add4bb8 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -599,6 +599,8 @@ if (!defined('CONTACT_EMAIL')) { define('TEST_USERNAME', 'user@example.com'); define('TEST_PASSWORD', 'password'); define('API_SECRET', 'API_SECRET'); + define('DEFAULT_API_PAGE_SIZE', 15); + define('MAX_API_PAGE_SIZE', 100); define('IOS_PRODUCTION_PUSH', env('IOS_PRODUCTION_PUSH', 'ninjaIOS')); define('IOS_DEV_PUSH', env('IOS_DEV_PUSH', 'devNinjaIOS'));