diff --git a/app/Http/Controllers/API/AccountController.php b/app/Http/Controllers/API/AccountController.php index e479ae77..15e12de1 100644 --- a/app/Http/Controllers/API/AccountController.php +++ b/app/Http/Controllers/API/AccountController.php @@ -10,14 +10,37 @@ class AccountController extends Controller { - public function account(Request $request) : AccountResource + /** + * @OA\GET( + * path="/api/account", + * summary=" - Get client account", + * tags = {"Account"}, + * security={ + * {"bearerAuth": {}} + * }, + * @OA\Response( + * response="200", + * description="OK" + * ), + * @OA\Response( + * response="401", + * description="Unauthorized" + * ) + * ) + */ + public function account(Request $request) { $account = $request->user() ->account() ->with('profile'); - return AccountResource::make($account); + if(!empty($account)){ + return AccountResource::make($account); + } + return response()->json([ + 'message'=> trans('app.account.not_found') + ],404 ); } public function storeContacts(ContactsRequest $request){ diff --git a/app/Http/Controllers/API/AuthController.php b/app/Http/Controllers/API/AuthController.php index f8ed84db..29e533d4 100644 --- a/app/Http/Controllers/API/AuthController.php +++ b/app/Http/Controllers/API/AuthController.php @@ -214,7 +214,6 @@ public function register(RegisterRequest $request) $account = Account::create([ 'country_id' => $request->country, - 'legalization_number' => $request->legalization_number, 'type' => $request->account_type ]); diff --git a/app/Http/Controllers/ResourceController.php b/app/Http/Controllers/API/ResourceController.php similarity index 96% rename from app/Http/Controllers/ResourceController.php rename to app/Http/Controllers/API/ResourceController.php index 8af4ae3d..46b42819 100644 --- a/app/Http/Controllers/ResourceController.php +++ b/app/Http/Controllers/API/ResourceController.php @@ -1,6 +1,6 @@ user(); - - if($account = $client->account){ - return AccountResource::make($account); - } - - return response()->json(['message'=> trans('app.account.not_found')],404 ); - } - - /** - * @OA\POST( - * path="/api/update-account", - * summary=" - Update account", - * tags = {"Account"}, - * security={ - * {"bearerAuth": {}} - * }, - * @OA\RequestBody( - * @OA\MediaType( - * mediaType="application/json", - * @OA\Schema( - * @OA\Property( - * property="contacts", - * type="string", - * ), - * @OA\Property( - * property="bank", - * type="string", - * ), - * @OA\Property( - * property="vat", - * type="string", - * ), - * @OA\Property( - * property="country_id", - * type="integer", - * ), - * @OA\Property( - * property="legalization_number", - * type="string", - * ), - * @OA\Property( - * property="type", - * type="string", - * ), - * example={"contacts":"{'address':'Ashgabat', 'phone': '+99362553499', 'email': 'ilmedovamahri@gmail.com', 'fax': '414141'}", "bank":"{'account_number':'12345','account_date':'02.02.2022','currency':'USD', 'iban':'747474', 'bank_name':'Vnezhekonom', 'country':'France'}" ,"vat": "123123", "country_id": 1, "legalization_number": "123456","type":"business"} - * ) - * ) - * ), - * @OA\Parameter( - * description="Localization", - * in="header", - * name="X-Localization", - * required=false, - * @OA\Schema(type="string"), - * @OA\Examples(example="ru", value="ru", summary="Russian localization"), - * @OA\Examples(example="en", value="en", summary="English localization"), - * @OA\Examples(example="tm", value="tm", summary="Turkmen localization"), - * ), - * @OA\Response( - * response="200", - * description="OK" - * ), - * @OA\Response( - * response="401", - * description="Unauthorized" - * ) - * ) - */ - public function update(AccountRequest $request){ - - $client = $request->user(); - - $account = $client->account; - - $account->fill($request->all())->save(); - - return AccountResource::make($account); - } -} diff --git a/app/Http/Requests/API/RegisterRequest.php b/app/Http/Requests/API/RegisterRequest.php index ace2a388..b74e4d56 100644 --- a/app/Http/Requests/API/RegisterRequest.php +++ b/app/Http/Requests/API/RegisterRequest.php @@ -30,7 +30,6 @@ public function rules() 'lastname' => 'required', 'account_type' => 'required|in:company,business', 'country' => 'required|numeric|gt:0', -// 'legalization_number' => 'required_if:is_registered,on' ]; } } diff --git a/app/Http/Resources/AccountResource.php b/app/Http/Resources/AccountResource.php index 1b341c80..3e17c6e0 100644 --- a/app/Http/Resources/AccountResource.php +++ b/app/Http/Resources/AccountResource.php @@ -25,7 +25,7 @@ public function toArray($request) private function profile() : JsonResource { - $type = config('services.account.'.$this->account_type.'.resource'); + $type = config('account.'.$this->account_type.'.resource'); return $type::make($this->profile); } diff --git a/app/Models/Account.php b/app/Models/Account.php index ae075118..7561e39f 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -20,7 +20,7 @@ class Account extends Model // public $timestamps = false; protected $guarded = ['id']; protected $fillable = [ - 'contacts', 'bank', 'vat', 'country_id', 'legalization_number','account_type' + 'contacts', 'bank', 'vat', 'country_id', 'legalization_number','type' ]; protected $casts = [ 'contacts' => 'array', diff --git a/config/account.php b/config/account.php index 7a58f544..e7556c68 100644 --- a/config/account.php +++ b/config/account.php @@ -6,13 +6,12 @@ * Time: 17:35 */ return [ - 'services' => [ - 'business' => App\Services\Business::class, - 'company' => App\Services\Company::class, - + 'business' => [ + 'class' => App\AccountTypes\BusinessAccount::class, + 'resources' => App\Http\Resources\BusinessProfileResource::class ], - 'models' => [ - 'business' => App\Models\Business::class, - 'company' => App\Models\Company::class + 'company' => [ + 'class' => App\AccountTypes\CompanyAccount::class, + 'resources' => App\Http\Resources\CompanyProfileResource::class ] -]; \ No newline at end of file +];