diff --git a/app/Classes/Modules/Accounts/ControllersLogic/FetchUserByEmailLogic.php b/app/Classes/Modules/Accounts/ControllersLogic/FetchUserByEmailLogic.php new file mode 100644 index 00000000..5db3fab4 --- /dev/null +++ b/app/Classes/Modules/Accounts/ControllersLogic/FetchUserByEmailLogic.php @@ -0,0 +1,61 @@ + 'Retrieved User', + 'message' => 'You have successfully retrieved a User by email' + ]; + } + + /** @var CanFetchUser */ + private $canFetchUser; + + /** @var FetchesUser */ + private $fetchesUser; + + /** + * FetchUserByEmailLogic constructor. + * @param CanFetchUser $canFetchUser + * @param FetchesUser $fetchesUser + */ + public function __construct(CanFetchUser $canFetchUser, FetchesUser $fetchesCompany) + { + $this->canFetchUser = $canFetchUser; + $this->fetchesUser = $fetchesCompany; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + $this->canFetchUser->passes(); + + $query = $this->fetchesUser->execute(['email' => $request->route('email')]); + + return $this->resourceResponse(new UserCompanyResource($query)); + + } + +} diff --git a/app/Http/Controllers/Accounts/FetchUserByEmailController.php b/app/Http/Controllers/Accounts/FetchUserByEmailController.php new file mode 100644 index 00000000..0a60d4c7 --- /dev/null +++ b/app/Http/Controllers/Accounts/FetchUserByEmailController.php @@ -0,0 +1,19 @@ +execute($request); + } +} diff --git a/app/Http/Resources/UserCompanyResource.php b/app/Http/Resources/UserCompanyResource.php new file mode 100644 index 00000000..09e9f2b7 --- /dev/null +++ b/app/Http/Resources/UserCompanyResource.php @@ -0,0 +1,25 @@ + $this->id, + 'name' => $this->name, + 'reference' => $this->company()->first()->reference, + 'type' => (int) $this->type, + 'status' => (int) $this->status + ]; + } +} diff --git a/resources/assets/vue/components/companies/elements/UserCompanyComponent.vue b/resources/assets/vue/components/companies/elements/UserCompanyComponent.vue new file mode 100644 index 00000000..4985f8ed --- /dev/null +++ b/resources/assets/vue/components/companies/elements/UserCompanyComponent.vue @@ -0,0 +1,49 @@ + + diff --git a/resources/assets/vue/components/companies/sections/CustomerSectionTwoComponent.vue b/resources/assets/vue/components/companies/sections/CustomerSectionTwoComponent.vue new file mode 100644 index 00000000..dba10bf2 --- /dev/null +++ b/resources/assets/vue/components/companies/sections/CustomerSectionTwoComponent.vue @@ -0,0 +1,79 @@ + + + diff --git a/resources/views/pages/customers/index.blade.php b/resources/views/pages/customers/index.blade.php index dc22b5b8..e5d694d8 100644 --- a/resources/views/pages/customers/index.blade.php +++ b/resources/views/pages/customers/index.blade.php @@ -5,6 +5,7 @@
+
@@ -77,10 +78,10 @@
-