From 1779ac40c9bad7977b04406e41b2203602891a32 Mon Sep 17 00:00:00 2001 From: James Brooks Date: Fri, 7 Aug 2015 10:31:21 +0100 Subject: [PATCH] Added the ability to sort and order API results. Closes #756 --- app/Http/Controllers/Api/AbstractApiController.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/AbstractApiController.php b/app/Http/Controllers/Api/AbstractApiController.php index a18612aa..596cb249 100644 --- a/app/Http/Controllers/Api/AbstractApiController.php +++ b/app/Http/Controllers/Api/AbstractApiController.php @@ -159,7 +159,15 @@ abstract class AbstractApiController extends BaseController ], ]; - return $this->setMetaData($pagination)->setData(AutoPresenter::decorate($paginator->getCollection()))->respond(); + $items = $paginator->getCollection(); + + if ($sortBy = $request->get('sort')) { + $direction = $request->has('order') && $request->get('order') == 'desc'; + + $items = $items->sortBy($sortBy, SORT_REGULAR, $direction); + } + + return $this->setMetaData($pagination)->setData(AutoPresenter::decorate($items->values()->all()))->respond(); } /**