call([$this, 'loadDependencies']); // Parse all of the includes to use on this request. $input = $this->request->input('include', []); $input = is_array($input) ? $input : explode(',', $input); $includes = (new Collection($input))->map(function ($value) { return trim($value); })->filter()->toArray(); $this->fractal->parseIncludes($includes); $this->fractal->limitRecursion(2); } /** * Perform dependency injection of certain classes needed for core functionality * without littering the constructors of classes that extend this abstract. */ public function loadDependencies(Fractal $fractal, Request $request) { $this->fractal = $fractal; $this->request = $request; } /** * Return an instance of an application transformer. * * @template T of \Pterodactyl\Transformers\Api\Application\BaseTransformer * * @param class-string $abstract * * @return T * * @noinspection PhpDocSignatureInspection * @noinspection PhpUndefinedClassInspection */ public function getTransformer(string $abstract) { Assert::subclassOf($abstract, BaseTransformer::class); return $abstract::fromRequest($this->request); } /** * Return a HTTP/204 response for the API. */ protected function returnNoContent(): Response { return new Response('', Response::HTTP_NO_CONTENT); } }