get account

This commit is contained in:
merdan 2022-07-29 13:14:05 +05:00
parent 9b2f7ad7bc
commit c1e32f0532
8 changed files with 35 additions and 123 deletions

View File

@ -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){

View File

@ -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
]);

View File

@ -1,6 +1,6 @@
<?php
namespace App\Http\Controllers;
namespace App\Http\Controllers\API;
use App\Http\Resources\CountryResource;
use App\Models\Country;

View File

@ -1,108 +0,0 @@
<?php
namespace App\Http\Controllers;
use App\Http\Requests\API\AccountRequest;
use App\Http\Resources\AccountResource;
class AccountController extends Controller
{
/**
* @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 get(){
$client = request()->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);
}
}

View File

@ -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'
];
}
}

View File

@ -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);
}

View File

@ -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',

View File

@ -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
]
];
];