diff --git a/app/AccountTypes/AccountTypesService.php b/app/AccountTypes/AccountTypesService.php new file mode 100644 index 00000000..711994ee --- /dev/null +++ b/app/AccountTypes/AccountTypesService.php @@ -0,0 +1,6 @@ +fill($data); + } + +} diff --git a/app/AccountTypes/CompanyAccount.php b/app/AccountTypes/CompanyAccount.php new file mode 100644 index 00000000..319a1881 --- /dev/null +++ b/app/AccountTypes/CompanyAccount.php @@ -0,0 +1,18 @@ +fill($data); + } + +} + diff --git a/app/Http/Controllers/API/AccountController.php b/app/Http/Controllers/API/AccountController.php new file mode 100644 index 00000000..e479ae77 --- /dev/null +++ b/app/Http/Controllers/API/AccountController.php @@ -0,0 +1,34 @@ +user() + ->account() + ->with('profile'); + + return AccountResource::make($account); + + } + + public function storeContacts(ContactsRequest $request){ + + } + + public function storeBankAccount(BankAccountRequest $request){ + + } + + public function storeProfile(){ + + } +} diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/API/AuthController.php similarity index 99% rename from app/Http/Controllers/AuthController.php rename to app/Http/Controllers/API/AuthController.php index fe5a7208..f8ed84db 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/API/AuthController.php @@ -1,6 +1,6 @@ 'required', 'account_type' => 'required|in:company,business', 'country' => 'required|numeric|gt:0', - 'legalization_number' => 'required_if:is_registered,on' +// 'legalization_number' => 'required_if:is_registered,on' ]; } } diff --git a/app/Http/Requests/BankAccountRequest.php b/app/Http/Requests/BankAccountRequest.php new file mode 100644 index 00000000..2152bed0 --- /dev/null +++ b/app/Http/Requests/BankAccountRequest.php @@ -0,0 +1,30 @@ + + */ + public function rules() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/ContactsRequest.php b/app/Http/Requests/ContactsRequest.php new file mode 100644 index 00000000..69672844 --- /dev/null +++ b/app/Http/Requests/ContactsRequest.php @@ -0,0 +1,30 @@ + + */ + public function rules() + { + return [ + // + ]; + } +} diff --git a/app/Http/Resources/AccountResource.php b/app/Http/Resources/AccountResource.php index 4727f57e..1b341c80 100644 --- a/app/Http/Resources/AccountResource.php +++ b/app/Http/Resources/AccountResource.php @@ -14,6 +14,19 @@ class AccountResource extends JsonResource */ public function toArray($request) { - return parent::toArray($request); + return [ + 'id' => $this->id, + 'bank_account' => $this->bank_account, + 'contacts' => $this->contacts, + 'account_type' => $this->account_type, + 'profile' => $this->profile() + ]; + } + + private function profile() : JsonResource + { + $type = config('services.account.'.$this->account_type.'.resource'); + + return $type::make($this->profile); } } diff --git a/app/Http/Resources/BusinessProfileResource.php b/app/Http/Resources/BusinessProfileResource.php new file mode 100644 index 00000000..117316bf --- /dev/null +++ b/app/Http/Resources/BusinessProfileResource.php @@ -0,0 +1,19 @@ + 'array', diff --git a/app/Services/AccountTypesService.php b/app/Services/AccountTypesService.php deleted file mode 100644 index 121cf2ee..00000000 --- a/app/Services/AccountTypesService.php +++ /dev/null @@ -1,6 +0,0 @@ -group(function () { + /** + * Client endpoints + */ Route::get('/client', [AuthController::class, 'client']); Route::post('/logout', [AuthController::class, 'logout']); Route::post('/update-client', [AuthController::class, 'updateClient']); - /* - * Account + /** + * Account endpoints */ - Route::get('/account',[AccountController::class,'get']); - Route::post('/update-account',[AccountController::class,'update']); + Route::group(['prefix' => 'account'],function () { + Route::get('/',[AccountController::class, 'account']); + Route::put('contacts',[AccountController::class,'storeContacts']); + Route::put('bank',[AccountController::class,'storeBankAccount']); + }); + });