Move everything around as needed to get things setup for the client API

This commit is contained in:
Dane Everitt 2018-02-25 15:30:56 -06:00
parent 8daf97021a
commit e28973bcae
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
17 changed files with 199 additions and 46 deletions

View file

@ -7,13 +7,15 @@ use Illuminate\Http\Response;
use Illuminate\Container\Container;
use Pterodactyl\Http\Controllers\Controller;
use Pterodactyl\Extensions\Spatie\Fractalistic\Fractal;
use Pterodactyl\Transformers\Api\Application\BaseTransformer;
use Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException;
abstract class ApplicationApiController extends Controller
{
/**
* @var \Illuminate\Http\Request
*/
private $request;
protected $request;
/**
* @var \Pterodactyl\Extensions\Spatie\Fractalistic\Fractal
@ -54,6 +56,8 @@ abstract class ApplicationApiController extends Controller
*
* @param string $abstract
* @return \Pterodactyl\Transformers\Api\Application\BaseTransformer
*
* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
*/
public function getTransformer(string $abstract)
{
@ -61,6 +65,10 @@ abstract class ApplicationApiController extends Controller
$transformer = Container::getInstance()->make($abstract);
$transformer->setKey($this->request->attributes->get('api_key'));
if (! $transformer instanceof BaseTransformer) {
throw new InvalidTransformerLevelException('Calls to ' . __METHOD__ . ' must return a transformer that is an instance of ' . __CLASS__);
}
return $transformer;
}