From b4e6fe7135b488a3e530e707855eb51bcdee5cce Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Mon, 4 Jul 2016 12:50:06 +0200 Subject: [PATCH] Created trait to serialize paginators --- .../Rest/ListShortcodesMiddleware.php | 17 ++++++----------- .../Util/PaginatorSerializerTrait.php | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 src/Paginator/Util/PaginatorSerializerTrait.php diff --git a/src/Middleware/Rest/ListShortcodesMiddleware.php b/src/Middleware/Rest/ListShortcodesMiddleware.php index 5f3b92a0..6a4a627f 100644 --- a/src/Middleware/Rest/ListShortcodesMiddleware.php +++ b/src/Middleware/Rest/ListShortcodesMiddleware.php @@ -1,6 +1,7 @@ shortUrlService->listShortUrls(); - - return new JsonResponse([ - 'shortUrls' => [ - 'data' => ArrayUtils::iteratorToArray($shortUrls->getCurrentItems()), - 'pagination' => [ - 'currentPage' => $shortUrls->getCurrentPageNumber(), - 'pagesCount' => $shortUrls->count(), - ], - ] - ]); + $query = $request->getQueryParams(); + $shortUrls = $this->shortUrlService->listShortUrls(isset($query['page']) ? $query['page'] : 1); + return new JsonResponse(['shortUrls' => $this->serializePaginator($shortUrls)]); } catch (\Exception $e) { return new JsonResponse([ 'error' => RestUtils::UNKNOWN_ERROR, diff --git a/src/Paginator/Util/PaginatorSerializerTrait.php b/src/Paginator/Util/PaginatorSerializerTrait.php new file mode 100644 index 00000000..573832ca --- /dev/null +++ b/src/Paginator/Util/PaginatorSerializerTrait.php @@ -0,0 +1,19 @@ + ArrayUtils::iteratorToArray($paginator->getCurrentItems()), + 'pagination' => [ + 'currentPage' => $paginator->getCurrentPageNumber(), + 'pagesCount' => $paginator->count(), + ], + ]; + } +}