From eaa0b2d382199acdbab297ff8f0aa02d33f69341 Mon Sep 17 00:00:00 2001 From: weichien00 Date: Sun, 27 Jun 2021 00:08:02 +0800 Subject: [PATCH] new:[user apis]add classes required to fetch a user API #3 --- .../ControllersLogic/FetchUserLogic.php | 63 +++++++++++++++++++ .../Accounts/Standards/Rules/CanFetchUser.php | 42 +++++++++++++ .../Accounts/FetchUserController.php | 23 +++++++ 3 files changed, 128 insertions(+) create mode 100644 app/Classes/Modules/Accounts/ControllersLogic/FetchUserLogic.php create mode 100644 app/Classes/Modules/Accounts/Standards/Rules/CanFetchUser.php create mode 100644 app/Http/Controllers/Accounts/FetchUserController.php diff --git a/app/Classes/Modules/Accounts/ControllersLogic/FetchUserLogic.php b/app/Classes/Modules/Accounts/ControllersLogic/FetchUserLogic.php new file mode 100644 index 00000000..8ff2035a --- /dev/null +++ b/app/Classes/Modules/Accounts/ControllersLogic/FetchUserLogic.php @@ -0,0 +1,63 @@ + 'Fetch Users', + 'message' => 'You have successfully retrieved the user' + ]; + } + + /** @var CanFetchUser */ + private $canFetchUser; + + /** @var FetchesUser */ + private $fetchessUser; + + /** + * FetchUserLogic constructor. + * @param CanFetchUser $canFetchUser + * @param FetchesUser $fetchessUser + */ + public function __construct(CanFetchUser $canFetchUser, FetchesUser $fetchessUser) + { + $this->canFetchUser = $canFetchUser; + $this->fetchessUser = $fetchessUser; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + try { + + $this->canFetchUser->passes(); + + $query = $this->fetchessUser->execute(['id' => $request->input('user_id')]); + + return $this->resourceResponse(new UserResource($query)); + + } catch (\Exception $exception){ + throw new ErrorException($exception->getMessage(), $exception->getCode()); + } + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/Accounts/Standards/Rules/CanFetchUser.php b/app/Classes/Modules/Accounts/Standards/Rules/CanFetchUser.php new file mode 100644 index 00000000..740e231c --- /dev/null +++ b/app/Classes/Modules/Accounts/Standards/Rules/CanFetchUser.php @@ -0,0 +1,42 @@ +execute($request); + } + +} \ No newline at end of file