From a5c96f4e89d9e3dd4269ab9c799d374e7b6651f9 Mon Sep 17 00:00:00 2001 From: edmondlang Date: Sat, 5 Feb 2022 18:02:36 +0800 Subject: [PATCH] implement api wallets for customer --- .../ControllersLogic/TopUpWalletLogic.php | 11 +- .../Resources/WalletTransactionResource.php | 3 +- .../CustomerProfileSectionComponent.vue | 6 +- .../customerDashboardSectionComponent.vue | 2 +- .../CustomerTransactionSectionComponent.vue | 140 ++++++++++++++++++ .../wallets/elements/WalletComponent.vue | 64 +------- .../elements/WalletTopUpHistoryComponent.vue | 29 ++-- .../forms/WalletTopUpFormComponent.vue | 71 ++++++--- .../views/pages/wallet/transactions.blade.php | 112 +------------- routes/web.php | 4 +- 10 files changed, 222 insertions(+), 220 deletions(-) create mode 100644 resources/assets/vue/components/wallets/elements/CustomerTransactionSectionComponent.vue diff --git a/app/Classes/Modules/Wallets/ControllersLogic/TopUpWalletLogic.php b/app/Classes/Modules/Wallets/ControllersLogic/TopUpWalletLogic.php index 0c51118a..6149d69d 100644 --- a/app/Classes/Modules/Wallets/ControllersLogic/TopUpWalletLogic.php +++ b/app/Classes/Modules/Wallets/ControllersLogic/TopUpWalletLogic.php @@ -15,7 +15,7 @@ use App\Classes\ValueObjects\Constants\TransactionType; use App\Classes\ValueObjects\Constants\PaymentMethodType; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Http\Resources\WalletResource; - +use App\Http\Resources\WalletTransactionResource; use ErrorException; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -86,6 +86,7 @@ class TopUpWalletLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { + $amount = floatval(str_replace(',', '', $request->input('amount'))); $company = $this->fetchesCompany->execute(['id' => $request->input('company_id')]); if (!$company->wallets()->first()) { $object = new WalletObject($company->id, 1, $this->generatesWalletCode->execute()); @@ -99,7 +100,7 @@ class TopUpWalletLogic extends AbstractControllerLogic $user->name, $user->email, 'This payment is made for wallet topup. ' . $company->reference, - $request->input('amount'), + $amount, $billNumber, $request->input('bank_code') ); @@ -111,8 +112,8 @@ class TopUpWalletLogic extends AbstractControllerLogic $company->id, 1, PaymentMethodType::PAYMENT_GATEWAY, - $request->input('amount'), - $request->input('amount'), + $amount, + $amount, 1, 1, 1, @@ -126,6 +127,6 @@ class TopUpWalletLogic extends AbstractControllerLogic $transaction = $this->createsTransaction->execute($company->wallets()->first(), $transaction_object); - return $this->resourceResponse(new WalletResource($wallet)); + return $this->resourceResponse(new WalletTransactionResource($transaction)); } } diff --git a/app/Http/Resources/WalletTransactionResource.php b/app/Http/Resources/WalletTransactionResource.php index 1d0037fe..af634f3b 100644 --- a/app/Http/Resources/WalletTransactionResource.php +++ b/app/Http/Resources/WalletTransactionResource.php @@ -23,7 +23,8 @@ class WalletTransactionResource extends JsonResource 'currency_id' => (int) $this->currency_id, 'original_amount' => (double) $this->original_amount, 'original_currency_id' => (int) $this->original_currency_id, - 'currency_rate' => (double) $this->currency_rate + 'currency_rate' => (double) $this->currency_rate, + 'reference' => $this->payment_reference ]; } } diff --git a/resources/assets/vue/components/companies/sections/CustomerProfileSectionComponent.vue b/resources/assets/vue/components/companies/sections/CustomerProfileSectionComponent.vue index b95f385f..50ecbacd 100644 --- a/resources/assets/vue/components/companies/sections/CustomerProfileSectionComponent.vue +++ b/resources/assets/vue/components/companies/sections/CustomerProfileSectionComponent.vue @@ -138,10 +138,10 @@ -
+
-
- +
+
diff --git a/resources/assets/vue/components/companies/sections/customerDashboardSectionComponent.vue b/resources/assets/vue/components/companies/sections/customerDashboardSectionComponent.vue index 4db667e7..fc3ad852 100644 --- a/resources/assets/vue/components/companies/sections/customerDashboardSectionComponent.vue +++ b/resources/assets/vue/components/companies/sections/customerDashboardSectionComponent.vue @@ -571,7 +571,7 @@
- +
diff --git a/resources/assets/vue/components/wallets/elements/CustomerTransactionSectionComponent.vue b/resources/assets/vue/components/wallets/elements/CustomerTransactionSectionComponent.vue new file mode 100644 index 00000000..b4fcd9ae --- /dev/null +++ b/resources/assets/vue/components/wallets/elements/CustomerTransactionSectionComponent.vue @@ -0,0 +1,140 @@ + + diff --git a/resources/assets/vue/components/wallets/elements/WalletComponent.vue b/resources/assets/vue/components/wallets/elements/WalletComponent.vue index af0398d5..92b2e275 100644 --- a/resources/assets/vue/components/wallets/elements/WalletComponent.vue +++ b/resources/assets/vue/components/wallets/elements/WalletComponent.vue @@ -1,4 +1,4 @@ -f