From 81fb6aa533a7bee09e603404f4606d0a6cc403de Mon Sep 17 00:00:00 2001 From: saparatayev Date: Tue, 25 Jan 2022 17:14:57 +0500 Subject: [PATCH] additional info about request --- .../Controllers/Web/RequestController.php | 26 +++++++-- app/Http/Resources/RequestResource.php | 12 +++- ...021_05_11_083506_create_requests_table.php | 4 +- .../js/Components/CreateRequestModal.vue | 55 ++++++++++++++++++- 4 files changed, 88 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/Web/RequestController.php b/app/Http/Controllers/Web/RequestController.php index 10e548e..f833fd9 100644 --- a/app/Http/Controllers/Web/RequestController.php +++ b/app/Http/Controllers/Web/RequestController.php @@ -42,6 +42,10 @@ class RequestController extends Controller 'phone' => ['required'], 'password' => ['required'], 'dial_code' => ['required'], + 'first_name' => ['required'], + 'last_name' => ['required'], + 'email' => ['required', 'email'], + 'org_type' => ['required'], 'items' => ['required', 'array'], 'items.*.id' => ['required'], 'totalPrice' => ['required', 'numeric'], @@ -73,16 +77,26 @@ class RequestController extends Controller break; case 200: - // try to withdraw from the balance + // check user balance + $fee = $input['totalPrice']; + if($input['currency'] == 'USD') { + $fee = $fee * settings('local_price') / settings('int_price'); + } + if($loginResponse['user']['user_balance'] - $fee < 0) { + return response()->json([ + 'status' => 300, // 300 + 'message' => 'Fill up your balance 2', + 'response' => $loginResponse + ], 300); + } + + // try to withdraw fee from the balance for creating a request $balanceResponse = Http::post('http://127.0.0.1:8000/api/v1/withdraw-from-balance?token=' . $loginResponse['token'] . '&total_price=' . $input['totalPrice'] . '¤cy=' . $input['currency']); $balanceResponseStatus = $balanceResponse->status(); if($balanceResponseStatus == 201) { - RequestModel::create(array_merge($input, [ - 'name' => $loginResponse['user']['name'] . $loginResponse['user']['surname'], - 'email' => $loginResponse['user']['email'] - ])); + RequestModel::create($input); } if($balanceResponseStatus == 500) { @@ -95,7 +109,7 @@ class RequestController extends Controller } return response()->json([ - 'status' => $balanceResponseStatus, // 201 (ok) or 300 (fill up balance) + 'status' => $balanceResponseStatus, // 201 (ok) 'message' => $balanceResponse['message'], 'response' => $balanceResponse ], $balanceResponseStatus); diff --git a/app/Http/Resources/RequestResource.php b/app/Http/Resources/RequestResource.php index 5c94e6c..8a30ec3 100644 --- a/app/Http/Resources/RequestResource.php +++ b/app/Http/Resources/RequestResource.php @@ -14,6 +14,16 @@ class RequestResource extends JsonResource */ public function toArray($request) { - return parent::toArray($request); + // return parent::toArray($request); + return [ + 'id' => $this->id, + 'name' => $this->first_name . ' ' . $this->last_name, + 'email' => $this->email, + 'phone' => $this->phone, + 'org_type' => $this->org_type, + 'items' => $this->items, + 'created_at' => $this->created_at->format('d.m.Y (h:i)'), + 'updated_at' => $this->updated_at, + ]; } } diff --git a/database/migrations/2021_05_11_083506_create_requests_table.php b/database/migrations/2021_05_11_083506_create_requests_table.php index c6927f8..4e3d66a 100644 --- a/database/migrations/2021_05_11_083506_create_requests_table.php +++ b/database/migrations/2021_05_11_083506_create_requests_table.php @@ -15,9 +15,11 @@ class CreateRequestsTable extends Migration { Schema::create('requests', function (Blueprint $table) { $table->id(); - $table->string('name'); + $table->string('first_name'); + $table->string('last_name'); $table->string('email'); $table->string('phone'); + $table->string('org_type'); $table->json('items'); $table->timestamps(); }); diff --git a/resources/js/Components/CreateRequestModal.vue b/resources/js/Components/CreateRequestModal.vue index 535f92a..f864a2c 100644 --- a/resources/js/Components/CreateRequestModal.vue +++ b/resources/js/Components/CreateRequestModal.vue @@ -45,8 +45,54 @@ -
+ + +
+

You have to be resgistered and have enough money no your balance to make a request

+

Not Registered? Click here

+
+ + + +
+
+ + + + + + + + + + + + + + + + +
+
+ +