. */ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\System; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Transformers\UserTransformer; use Illuminate\Http\JsonResponse; use League\Fractal\Resource\Item; /** * Returns basic information about this installation. * * Class AboutController. */ class AboutController extends Controller { /** * This endpoint is documented at: * https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/about/getAbout * * Returns system information. */ public function about(): JsonResponse { $search = ['~', '#']; $replace = ['\~', '# ']; $phpVersion = str_replace($search, $replace, PHP_VERSION); $phpOs = str_replace($search, $replace, PHP_OS); $currentDriver = \DB::getDriverName(); $data = [ 'version' => config('firefly.version'), 'api_version' => config('firefly.version'), 'php_version' => $phpVersion, 'os' => $phpOs, 'driver' => $currentDriver, ]; return response()->api(['data' => $data])->header('Content-Type', self::CONTENT_TYPE); } /** * This endpoint is documented at: * https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/about/getCurrentUser * * Returns information about the user. */ public function user(): JsonResponse { $manager = $this->getManager(); /** @var UserTransformer $transformer */ $transformer = app(UserTransformer::class); $transformer->setParameters($this->parameters); $resource = new Item(auth()->user(), $transformer, 'users'); return response()->api($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } }