diff --git a/app/Http/Controllers/API/AccountController.php b/app/Http/Controllers/API/AccountController.php index 10fb0953..104bc151 100644 --- a/app/Http/Controllers/API/AccountController.php +++ b/app/Http/Controllers/API/AccountController.php @@ -6,6 +6,7 @@ use App\Http\Requests\API\BankAccountRequest; use App\Http\Requests\API\ContactsRequest; use App\Http\Resources\AccountResource; +use App\Http\Resources\ApplicationStatusResource; use App\Http\Resources\BankResource; use App\Http\Resources\ContactResource; 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 ); + } + diff --git a/app/Http/Resources/ApplicationStatusResource.php b/app/Http/Resources/ApplicationStatusResource.php new file mode 100644 index 00000000..a5321c4f --- /dev/null +++ b/app/Http/Resources/ApplicationStatusResource.php @@ -0,0 +1,30 @@ + $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, + ]; + } +} diff --git a/app/Models/Account.php b/app/Models/Account.php index a8d4ea48..7e88ba68 100755 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -26,7 +26,15 @@ class Account extends Model // public $timestamps = false; protected $guarded = []; 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 = [ 'contacts' => 'array', diff --git a/routes/api.php b/routes/api.php index d91fd4dd..e7d2d0cd 100755 --- a/routes/api.php +++ b/routes/api.php @@ -46,6 +46,7 @@ */ Route::group(['prefix' => 'account'], function () { Route::get('/',[AccountController::class, 'account']); + Route::get('legalization-broker-status',[AccountController::class, 'numbersAvailibility']); Route::put('contacts',[AccountController::class,'storeContacts']); Route::put('bank',[AccountController::class,'storeBankAccount']); Route::post('add-client', [ClientController::class, 'registerClient']); diff --git a/storage/api-docs/api-docs.json b/storage/api-docs/api-docs.json index 7fcaa573..a3409fde 100755 --- a/storage/api-docs/api-docs.json +++ b/storage/api-docs/api-docs.json @@ -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": { "put": { "tags": [