Exemplo n.º 1
0
 /**
  * @param SerializableResourceInterface $resource
  *
  * @return array
  */
 public function format(SerializableResourceInterface $resource) : array
 {
     if ($resource instanceof Resource) {
         $data = ['name' => $resource->getName()];
         if ($this->hasPaginator()) {
             $data += ['page' => $this->getPaginator()->getCurrentPage()];
         }
     } else {
         $data = [];
         /** @var ResourceInterface $singleResource */
         foreach ($resource as $singleResource) {
             $data[] = ['name' => $singleResource->getName()];
         }
         if ($this->hasPaginator()) {
             $data += ['page' => $this->getPaginator()->getCurrentPage()];
         }
     }
     return $data;
 }
Exemplo n.º 2
0
 /**
  *
  * @param SerializableResourceInterface $resource
  *
  * @return array
  */
 public function format(SerializableResourceInterface $resource) : array
 {
     if ($resource instanceof Resource) {
         $dataArray = [$resource->getName() => ['data' => $resource->getProperties()]];
         if (!empty($resource->getRelations())) {
             $dataArray[$resource->getName()] += ['relations' => $this->getRelations($resource)];
         }
         $result['data'] = $dataArray;
     } else {
         $result = [];
         $dataArray = [];
         /** @var Resource $subResource */
         foreach ($resource as $subResource) {
             $data = [$subResource->getName() => ['data' => $subResource->getProperties()]];
             if (!empty($subResource->getRelations())) {
                 $data[$subResource->getName()] += ['relations' => $this->getRelations($subResource)];
             }
             $dataArray[] = $data;
         }
         $result['data'] = $dataArray;
         if ($this->hasPaginator()) {
             $meta = ['total' => $this->getPaginator()->getTotal(), 'count' => $this->getPaginator()->getCount(), 'per_page' => $this->getPaginator()->getPerPage(), 'last' => $this->getPaginator()->getLastPage()];
             $result['meta'] = $meta;
         }
     }
     return $result;
 }