Ejemplo n.º 1
0
 /**
  * test adding an item
  *
  * @return void
  */
 public function testAddItem()
 {
     $header = new LinkHeader(array());
     $item = new LinkHeaderItem('urn:uri');
     $header->add($item);
     $links = $header->all();
     $this->assertSame($item, $links[0]);
 }
 /**
  * generate link header passed on params and type
  *
  * @param string  $routeName        use with router to generate urls
  * @param integer $page             page to link to
  * @param integer $perPage          number of items per page
  * @param string  $type             rel type of link to generate
  * @param array   $additionalParams Optional array of additional params to include
  *
  * @return string
  */
 private function generateLink($routeName, $page, $perPage, $type, $additionalParams = array())
 {
     $parameters = array_merge($additionalParams, array('page' => $page));
     if ($perPage) {
         $parameters['perPage'] = $perPage;
     }
     $url = $this->router->generate($routeName, $parameters, true);
     $this->linkHeader->add(new LinkHeaderItem($url, array('rel' => $type)));
 }
Ejemplo n.º 3
0
 /**
  * generate link header passed on params and type
  *
  * @param string  $routeName use with router to generate urls
  * @param integer $page      page to link to
  * @param integer $perPage   number of items per page
  * @param string  $type      rel type of link to generate
  * @param Request $request   request to get rawRql from
  * @param string  $rql       rql query string
  *
  * @return string
  */
 private function generateLink($routeName, $page, $perPage, $type, Request $request, $rql)
 {
     $limit = '';
     if ($perPage) {
         $page = ($page - 1) * $perPage;
         $limit = sprintf('limit(%s,%s)', $perPage, $page);
     }
     if (strpos($rql, 'limit') !== false) {
         $rql = preg_replace('/limit\\(.*\\)/', $limit, $rql);
     } else {
         $rql = $limit;
     }
     $url = $this->getRqlUrl($request, $this->router->generate($routeName, [], true) . '?' . strtr($rql, [',' => '%2C']));
     $this->linkHeader->add(new LinkHeaderItem($url, array('rel' => $type)));
 }
Ejemplo n.º 4
0
 /**
  * Prepares the header field containing information about pagination.
  *
  * @return string
  */
 protected function prepareLinkHeader()
 {
     $links = new LinkHeader(array());
     $links->add(new LinkHeaderItem($this->router->generate('graviton.core.rest.app.all', array(), true), array('rel' => 'apps', 'type' => 'application/json')));
     return (string) $links;
 }