Exemplo n.º 1
0
 /**
  * convert data into transformed array
  *
  * @param mixed $data
  * @param Item|Collection $resource
  * @param array|string $embeds
  * @return array
  */
 public function convert($data, Item $resource, $embeds = [])
 {
     if (is_string($embeds)) {
         $embeds = $this->embedManager->getEmbedsFromParam($embeds);
     }
     $embeds = $this->embedManager->filter($this->availableEmbeds, $embeds);
     return $resource->transform($data, $embeds);
 }
Exemplo n.º 2
0
 public function testGetEmbedsFromParam()
 {
     $embeds = $this->embedManager->getEmbedsFromParam('');
     $this->assertEquals([], $embeds);
     $embeds = $this->embedManager->getEmbedsFromParam('comments');
     $this->assertEquals(1, count($embeds));
     $this->assertEquals('comments', $embeds[0]->name);
     $this->assertEquals([], $embeds[0]->children);
     $embeds = $this->embedManager->getEmbedsFromParam('games.teams.players');
     $this->assertEquals(1, count($embeds));
     $this->assertEquals('games', $embeds[0]->name);
     $this->assertEquals(1, count($embeds[0]->children));
     $this->assertEquals('teams', $embeds[0]->children[0]->name);
     $this->assertEquals(1, count($embeds[0]->children[0]->children));
     $this->assertEquals('players', $embeds[0]->children[0]->children[0]->name);
     $embeds = $this->embedManager->getEmbedsFromParam('comments.users,likes.users');
     $this->assertEquals(2, count($embeds));
     $this->assertEquals('comments', $embeds[0]->name);
     $this->assertEquals(1, count($embeds[0]->children));
     $this->assertEquals('users', $embeds[0]->children[0]->name);
     $this->assertEquals('likes', $embeds[1]->name);
     $this->assertEquals(1, count($embeds[1]->children));
     $this->assertEquals('users', $embeds[1]->children[0]->name);
 }