. */ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers; use DB; use FireflyIII\Transformers\UserTransformer; use Illuminate\Http\Request; use League\Fractal\Manager; use League\Fractal\Resource\Item; use League\Fractal\Serializer\JsonApiSerializer; /** * Class AboutController */ class AboutController extends Controller { /** * AccountController constructor. * * @throws \FireflyIII\Exceptions\FireflyException */ public function __construct() { parent::__construct(); } /** * @return \Illuminate\Http\JsonResponse */ public function about() { $search = ['~', '#']; $replace = ['\~', '# ']; $phpVersion = str_replace($search, $replace, PHP_VERSION); $phpOs = str_replace($search, $replace, php_uname()); $currentDriver = DB::getDriverName(); $data = [ 'version' => config('firefly.version'), 'api_version' => config('firefly.api_version'), 'php_version' => $phpVersion, 'os' => $phpOs, 'driver' => $currentDriver, ]; return response()->json(['data' => $data], 200)->header('Content-Type', 'application/vnd.api+json'); } /** * @param Request $request * * @return \Illuminate\Http\JsonResponse */ public function user(Request $request) { $manager = new Manager(); $baseUrl = $request->getSchemeAndHttpHost() . '/api/v1'; $manager->setSerializer(new JsonApiSerializer($baseUrl)); $resource = new Item(auth()->user(), new UserTransformer($this->parameters), 'users'); return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json'); } }