added new api for getting details about applictns

This commit is contained in:
ilmedova 2023-04-11 14:09:36 +05:00
parent 9b32b9bfdb
commit 8a8c9b0a7d
5 changed files with 94 additions and 1 deletions

View File

@ -6,6 +6,7 @@
use App\Http\Requests\API\BankAccountRequest; use App\Http\Requests\API\BankAccountRequest;
use App\Http\Requests\API\ContactsRequest; use App\Http\Requests\API\ContactsRequest;
use App\Http\Resources\AccountResource; use App\Http\Resources\AccountResource;
use App\Http\Resources\ApplicationStatusResource;
use App\Http\Resources\BankResource; use App\Http\Resources\BankResource;
use App\Http\Resources\ContactResource; use App\Http\Resources\ContactResource;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@ -86,6 +87,16 @@ public function storeProfile()
} }
public function numbersAvailibility(){
if(!empty($this->account)){
return ApplicationStatusResource::make($this->account);
}
return response()->json([
'message'=> trans('app.account.not_found')
],404 );
}

View File

@ -0,0 +1,30 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class ApplicationStatusResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
*/
public function toArray($request)
{
return [
'legal_number' => $this->legalization_number,
'legal_expires_at' => !is_null($this->expires_at)?$this->expires_at->format('d.m.Y'):null,
'legal_can_apply' => $this->can_apply,
'legal_can_extend' => $this->can_extend,
'legal_app_status' => $this->application_status,
'broker_number' => $this->broker_number,
'broker_expires_at' => !is_null($this->broker_expires_at)?$this->broker_expires_at->format('d.m.Y'):null,
'broker_can_apply' => $this->can_apply_broker,
'broker_can_extend' => $this->can_extend_broker,
'broker_app_status' => $this->application_broker_status,
];
}
}

View File

@ -26,7 +26,15 @@ class Account extends Model
// public $timestamps = false; // public $timestamps = false;
protected $guarded = []; protected $guarded = [];
protected $fillable = [ protected $fillable = [
'contacts', 'bank', 'vat', 'country_id', 'legalization_number', 'type', 'expires_at', 'broker_expires_at', 'broker_number' 'contacts',
'bank',
'vat',
'country_id',
'legalization_number',
'type',
'expires_at',
'broker_expires_at',
'broker_number'
]; ];
protected $casts = [ protected $casts = [
'contacts' => 'array', 'contacts' => 'array',

View File

@ -46,6 +46,7 @@
*/ */
Route::group(['prefix' => 'account'], function () { Route::group(['prefix' => 'account'], function () {
Route::get('/',[AccountController::class, 'account']); Route::get('/',[AccountController::class, 'account']);
Route::get('legalization-broker-status',[AccountController::class, 'numbersAvailibility']);
Route::put('contacts',[AccountController::class,'storeContacts']); Route::put('contacts',[AccountController::class,'storeContacts']);
Route::put('bank',[AccountController::class,'storeBankAccount']); Route::put('bank',[AccountController::class,'storeBankAccount']);
Route::post('add-client', [ClientController::class, 'registerClient']); Route::post('add-client', [ClientController::class, 'registerClient']);

View File

@ -59,6 +59,49 @@
] ]
} }
}, },
"/api/account/legalization-broker-status": {
"get": {
"tags": [
"Account"
],
"summary": " - Get account legalization and broker statuses",
"operationId": "e809af65c12695106f3cbcf67011e1cy",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json":{
"schema":{
"type": "object",
"example": {
"data": {
"legal_number": null,
"legal_expires_at": null,
"legal_can_apply": true,
"legal_can_extend": false,
"application_status": null,
"broker_number": null,
"broker_expires_at": null,
"broker_can_apply": true,
"broker_can_extend": false,
"application_broker_status": null
}
}
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"bearerAuth": []
}
]
}
},
"/api/account/contacts": { "/api/account/contacts": {
"put": { "put": {
"tags": [ "tags": [