/**
  * Apply Fractal
  *
  * @param Request  $request  Request
  * @param Response $response Response
  *
  * @return Response Response
  */
 private function applyFractal(Request $request, Response $response)
 {
     $fractal = new Manager();
     $transformer = $this->getTransformer($request);
     // if (isset($this->includes)) {
     //     $this->manager->parseIncludes($this->includes);
     // }
     if ($response->getItem()) {
         if ($transformer) {
             $resource = new Item($response->getItem(), $transformer);
         } else {
             $resource = new Item($response->getItem());
         }
     }
     if (is_array($response->getCollection())) {
         if ($transformer) {
             $resource = new Collection($response->getCollection(), $transformer);
         } else {
             $resource = new Collection($response->getCollection());
         }
         if ($paginator = $this->getPaginator($response)) {
             $resource->setPaginator($paginator);
         }
     }
     if (isset($resource)) {
         $serializer = $this->getSerializer($request);
         $fractal->setSerializer($serializer);
         $resource = $fractal->createData($resource)->toArray();
         $json = \Craft\JsonHelper::encode($resource);
         $response = $response->withJson($json);
     }
     return $response;
 }