1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace App\Serializers;
- use League\Fractal\Pagination\PaginatorInterface;
- use League\Fractal\Serializer\ArraySerializer;
- class CustomSerializer extends ArraySerializer
- {
- /**
- * Serialize a collection.
- *
- * @param string $resourceKey
- * @param array $data
- *
- * @return array
- */
- public function collection($resourceKey, array $data)
- {
- $resultData = ['data' => $data, 'status_code' => 200, 'message' => 'success'];
- if (!empty($resourceKey)) {
- $resultData['total'] = $resourceKey;
- }
- return $resultData;
- }
- public function array(){}
- /**
- * Serialize an item.
- *
- * @param string $resourceKey
- * @param array $data
- *
- * @return array
- */
- public function item($resourceKey, array $data)
- {
- return ['data' => $data, 'status_code' => 200, 'message' => 'success'];
- }
- /**
- * Serialize null resource.
- *
- * @return array
- */
- public function null()
- {
- return ['data' => [], 'status_code' => 200, 'message' => 'success'];
- }
- // /**
- // * Serialize null resource.
- // *
- // * @return array
- // */
- // public function null()
- // {
- // return null;
- // }
- /**
- * Serialize the paginator.
- *
- * @param PaginatorInterface $paginator
- *
- * @return array
- */
- public function paginator(PaginatorInterface $paginator)
- {
- $currentPage = (int) $paginator->getCurrentPage();
- $lastPage = (int) $paginator->getLastPage();
- $pagination = [
- 'total' => (int) $paginator->getTotal(),
- 'count' => (int) $paginator->getCount(),
- 'per_page' => (int) $paginator->getPerPage(),
- 'current_page' => $currentPage,
- 'total_pages' => $lastPage,
- ];
- $pagination['links']['previous'] = null;
- $pagination['links']['next'] = null;
- if ($currentPage > 1) {
- $pagination['links']['previous'] = $paginator->getUrl($currentPage - 1);
- }
- if ($currentPage < $lastPage) {
- $pagination['links']['next'] = $paginator->getUrl($currentPage + 1);
- }
- if (!array_filter($pagination['links'])) {
- $pagination['links'] = null;
- }
- return ['pagination' => $pagination];
- }
- }
|