. */ namespace FireflyIII\Api\V2\Controllers; use FireflyIII\Transformers\AbstractTransformer; use Illuminate\Database\Eloquent\Model; use Illuminate\Routing\Controller as BaseController; use League\Fractal\Manager; use League\Fractal\Resource\Item; use League\Fractal\Serializer\JsonApiSerializer; /** * Class Controller */ class Controller extends BaseController { protected const CONTENT_TYPE = 'application/vnd.api+json'; /** * Returns a JSON API object and returns it. * * @param string $key * @param Model $object * @param AbstractTransformer $transformer * @return array */ final protected function jsonApiObject(string $key, Model $object, AbstractTransformer $transformer): array { // create some objects: $manager = new Manager; $baseUrl = request()->getSchemeAndHttpHost() . '/api/v2'; $manager->setSerializer(new JsonApiSerializer($baseUrl)); $resource = new Item($object, $transformer, $key); return $manager->createData($resource)->toArray(); } }