/**
  * @param Request $request
  */
 private function filterOutIncludedResources(Request $request)
 {
     if ($include = $request->getIncludedRelationships()) {
         foreach ($include as $resource => $includeData) {
             if ($this->serializationStrategy->getMappingByAlias($resource) == null) {
                 continue;
             }
             foreach ($this->serializationStrategy->getMappings() as $mapping) {
                 $mapping->filteringIncludedResources(true);
                 if (is_array($includeData)) {
                     foreach ($includeData as $subResource) {
                         $this->serializationStrategy->getMappingByAlias($subResource)->addIncludedResource($this->serializationStrategy->getMappingByAlias($resource)->getClassName());
                     }
                     break;
                 }
                 $mapping->addIncludedResource($this->serializationStrategy->getMappingByAlias($resource)->getClassName());
             }
         }
     }
 }
예제 #2
0
 public function testGetIncludedRelationships()
 {
     $expected = ['friends' => ['username'], 'comments' => 'comments'];
     $this->assertEquals($expected, $this->request->getIncludedRelationships()->get());
 }