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