diff --git a/app/Api/V1/Controllers/AboutController.php b/app/Api/V1/Controllers/AboutController.php new file mode 100644 index 0000000000..4529802743 --- /dev/null +++ b/app/Api/V1/Controllers/AboutController.php @@ -0,0 +1,88 @@ +. + */ + +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'); + } + +} \ No newline at end of file