hasPages() public method

If the response has a pagination field with a next_url key, then returns true, otherwise false.
public hasPages ( ) : boolean
return boolean
Example #1
0
 /**
  * {@inheritDoc}
  */
 public function paginate(Response $response, $limit = null)
 {
     // If there's nothing to paginate, return response as-is
     if (!$response->hasPages() || $limit === 0) {
         return $response;
     }
     $next = $this->request('GET', $response->nextUrl());
     $merged = $response->merge($next);
     // If ``$limit`` is not set then call itself indefinitely
     if ($limit === null) {
         return $this->paginate($merged);
     }
     // If ``$limit`` is set, call itself while decrementing it each time
     $limit--;
     return $this->paginate($merged, $limit);
 }
Example #2
0
 /**
  * Merges the contents of this response with ``$response`` and returns a new
  * :php:class:`Response` instance.
  *
  * @param Response $response
  *
  * @return Response
  *
  * @throws IncompatibleResponseException
  */
 public function merge(Response $response)
 {
     $meta = $response->getRaw('meta');
     $data = $response->get();
     $pagination = $response->hasPages() ? $response->getRaw('pagination') : [];
     $old = $this->get();
     if ($this->isCollection($old) && $this->isCollection($data)) {
         $old = !$old instanceof Collection ?: $old->toArray();
         $new = !$data instanceof Collection ?: $data->toArray();
         return new Response($meta, array_merge($old, $new), $pagination);
     }
     if ($this->isRecord($old) && $this->isRecord($data)) {
         return new Response($meta, [$old, $data], $pagination);
     }
     throw new IncompatibleResponseException('The response contents cannot be merged');
 }