. */ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers; use DB; use FireflyIII\Transformers\UserTransformer; use Illuminate\Http\JsonResponse; use League\Fractal\Resource\Item; /** * Returns basic information about this installation. * * @codeCoverageIgnore * Class AboutController. */ class AboutController extends Controller { /** * Returns system information. * * @return JsonResponse */ 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.api_version'), 'php_version' => $phpVersion, 'os' => $phpOs, 'driver' => $currentDriver, ]; return response()->json(['data' => $data])->header('Content-Type', 'application/vnd.api+json'); } /** * Returns information about the user. * * @return JsonResponse */ 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()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json'); } }