From 8fc354cef37d8b00f448de4e38e13365d1b33cc1 Mon Sep 17 00:00:00 2001 From: MD ARIFUL HAQUE Date: Tue, 20 Feb 2024 22:47:57 +0600 Subject: [PATCH 1/2] LP-230 Please add service name in transaction list and transaction details --- src/Http/Resources/BankTransferCollection.php | 54 ++++++++++++++++++- src/Http/Resources/BankTransferResource.php | 45 +++++++++++++++- src/Http/Resources/CashPickupCollection.php | 54 ++++++++++++++++++- src/Http/Resources/CashPickupResource.php | 45 +++++++++++++++- .../Resources/WalletTransferCollection.php | 54 ++++++++++++++++++- src/Http/Resources/WalletTransferResource.php | 45 +++++++++++++++- 6 files changed, 291 insertions(+), 6 deletions(-) diff --git a/src/Http/Resources/BankTransferCollection.php b/src/Http/Resources/BankTransferCollection.php index dd3eab9..b794533 100644 --- a/src/Http/Resources/BankTransferCollection.php +++ b/src/Http/Resources/BankTransferCollection.php @@ -2,6 +2,7 @@ namespace Fintech\Remit\Http\Resources; +use Fintech\Core\Facades\Core; use Fintech\Core\Supports\Constant; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\ResourceCollection; @@ -16,7 +17,58 @@ class BankTransferCollection extends ResourceCollection */ public function toArray($request) { - return parent::toArray($request); + return $this->collection->map(function ($deposit) { + $data = [ + 'id' => $deposit->getKey(), + 'source_country_id' => $deposit->source_country_id ?? null, + 'source_country_name' => null, + 'destination_country_id' => $deposit->destination_country_id ?? null, + 'destination_country_name' => null, + 'parent_id' => $deposit->parent_id ?? null, + 'sender_receiver_id' => $deposit->sender_receiver_id ?? null, + 'sender_receiver_name' => null, + 'user_id' => $deposit->user_id ?? null, + 'user_name' => null, + 'service_id' => $deposit->service_id ?? null, + 'service_name' => null, + 'transaction_form_id' => $deposit->transaction_form_id ?? null, + 'transaction_form_name' => $deposit->transaction_form_name ?? null, + 'ordered_at' => $deposit->ordered_at ?? null, + 'amount' => $deposit->amount ?? null, + 'currency' => $deposit->currency ?? null, + 'converted_amount' => $deposit->converted_amount ?? null, + 'converted_currency' => $deposit->converted_currency ?? null, + 'order_number' => $deposit->order_number ?? null, + 'risk_profile' => $deposit->risk_profile ?? null, + 'notes' => $deposit->notes ?? null, + 'is_refunded' => $deposit->is_refunded ?? null, + 'order_data' => $deposit->order_data ?? new \stdClass(), + 'status' => $deposit->status ?? null, + 'created_at' => $deposit->created_at ?? null, + 'updated_at' => $deposit->updated_at ?? null, + 'links' => $deposit->links ?? null, + ]; + + if (Core::packageExists('MetaData')) { + $data['source_country_name'] = $deposit->sourceCountry?->name ?? null; + $data['destination_country_name'] = $deposit->destinationCountry?->name ?? null; + } + if (Core::packageExists('Auth')) { + $data['user_name'] = $deposit->user?->name ?? null; + $data['sender_receiver_name'] = $deposit->senderReceiver?->name ?? null; + } + if (Core::packageExists('Business')) { + $data['service_name'] = $deposit->service?->service_name ?? null; + } + if (Core::packageExists('Business')) { + $data['service_name'] = $deposit->service?->service_name ?? null; + } + if (Core::packageExists('Transaction')) { + $data['transaction_form_name'] = $deposit->transactionForm?->name ?? null; + } + + return $data; + })->toArray(); } /** diff --git a/src/Http/Resources/BankTransferResource.php b/src/Http/Resources/BankTransferResource.php index 607f0f4..2a05c71 100644 --- a/src/Http/Resources/BankTransferResource.php +++ b/src/Http/Resources/BankTransferResource.php @@ -2,6 +2,7 @@ namespace Fintech\Remit\Http\Resources; +use Fintech\Core\Facades\Core; use Illuminate\Http\Resources\Json\JsonResource; class BankTransferResource extends JsonResource @@ -14,6 +15,48 @@ class BankTransferResource extends JsonResource */ public function toArray($request) { - return parent::toArray($request); + $data = [ + 'id' => $this->getKey(), + 'source_country_id' => $this->source_country_id ?? null, + 'source_country_name' => null, + 'destination_country_id' => $this->destination_country_id ?? null, + 'destination_country_name' => null, + 'parent_id' => $this->parent_id ?? null, + 'sender_receiver_id' => $this->sender_receiver_id ?? null, + 'sender_receiver_name' => null, + 'user_id' => $this->user_id ?? null, + 'user_name' => null, + 'service_id' => $this->service_id ?? null, + 'service_name' => null, + 'transaction_form_id' => $this->transaction_form_id ?? null, + 'ordered_at' => $this->ordered_at ?? null, + 'amount' => $this->amount ?? null, + 'currency' => $this->currency ?? null, + 'converted_amount' => $this->converted_amount ?? null, + 'converted_currency' => $this->converted_currency ?? null, + 'order_number' => $this->order_number ?? null, + 'risk_profile' => $this->risk_profile ?? null, + 'notes' => $this->notes ?? null, + 'is_refunded' => $this->is_refunded ?? null, + 'order_data' => $this->order_data ?? new \stdClass(), + 'status' => $this->status ?? null, + 'created_at' => $this->created_at ?? null, + 'updated_at' => $this->updated_at ?? null, + 'links' => $this->links ?? null, + ]; + + if (Core::packageExists('MetaData')) { + $data['source_country_name'] = $this->sourceCountry?->name ?? null; + $data['destination_country_name'] = $this->destinationCountry?->name ?? null; + } + if (Core::packageExists('Auth')) { + $data['user_name'] = $this->user?->name ?? null; + $data['sender_receiver_name'] = $this->senderReceiver?->name ?? null; + } + if (Core::packageExists('Business')) { + $data['service_name'] = $this->service?->service_name ?? null; + } + + return $data; } } diff --git a/src/Http/Resources/CashPickupCollection.php b/src/Http/Resources/CashPickupCollection.php index 742161d..58aeb2d 100644 --- a/src/Http/Resources/CashPickupCollection.php +++ b/src/Http/Resources/CashPickupCollection.php @@ -2,6 +2,7 @@ namespace Fintech\Remit\Http\Resources; +use Fintech\Core\Facades\Core; use Fintech\Core\Supports\Constant; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\ResourceCollection; @@ -16,7 +17,58 @@ class CashPickupCollection extends ResourceCollection */ public function toArray($request) { - return parent::toArray($request); + return $this->collection->map(function ($deposit) { + $data = [ + 'id' => $deposit->getKey(), + 'source_country_id' => $deposit->source_country_id ?? null, + 'source_country_name' => null, + 'destination_country_id' => $deposit->destination_country_id ?? null, + 'destination_country_name' => null, + 'parent_id' => $deposit->parent_id ?? null, + 'sender_receiver_id' => $deposit->sender_receiver_id ?? null, + 'sender_receiver_name' => null, + 'user_id' => $deposit->user_id ?? null, + 'user_name' => null, + 'service_id' => $deposit->service_id ?? null, + 'service_name' => null, + 'transaction_form_id' => $deposit->transaction_form_id ?? null, + 'transaction_form_name' => $deposit->transaction_form_name ?? null, + 'ordered_at' => $deposit->ordered_at ?? null, + 'amount' => $deposit->amount ?? null, + 'currency' => $deposit->currency ?? null, + 'converted_amount' => $deposit->converted_amount ?? null, + 'converted_currency' => $deposit->converted_currency ?? null, + 'order_number' => $deposit->order_number ?? null, + 'risk_profile' => $deposit->risk_profile ?? null, + 'notes' => $deposit->notes ?? null, + 'is_refunded' => $deposit->is_refunded ?? null, + 'order_data' => $deposit->order_data ?? new \stdClass(), + 'status' => $deposit->status ?? null, + 'created_at' => $deposit->created_at ?? null, + 'updated_at' => $deposit->updated_at ?? null, + 'links' => $deposit->links ?? null, + ]; + + if (Core::packageExists('MetaData')) { + $data['source_country_name'] = $deposit->sourceCountry?->name ?? null; + $data['destination_country_name'] = $deposit->destinationCountry?->name ?? null; + } + if (Core::packageExists('Auth')) { + $data['user_name'] = $deposit->user?->name ?? null; + $data['sender_receiver_name'] = $deposit->senderReceiver?->name ?? null; + } + if (Core::packageExists('Business')) { + $data['service_name'] = $deposit->service?->service_name ?? null; + } + if (Core::packageExists('Business')) { + $data['service_name'] = $deposit->service?->service_name ?? null; + } + if (Core::packageExists('Transaction')) { + $data['transaction_form_name'] = $deposit->transactionForm?->name ?? null; + } + + return $data; + })->toArray(); } /** diff --git a/src/Http/Resources/CashPickupResource.php b/src/Http/Resources/CashPickupResource.php index acf6b9d..0e8ef5d 100644 --- a/src/Http/Resources/CashPickupResource.php +++ b/src/Http/Resources/CashPickupResource.php @@ -2,6 +2,7 @@ namespace Fintech\Remit\Http\Resources; +use Fintech\Core\Facades\Core; use Illuminate\Http\Resources\Json\JsonResource; class CashPickupResource extends JsonResource @@ -14,6 +15,48 @@ class CashPickupResource extends JsonResource */ public function toArray($request) { - return parent::toArray($request); + $data = [ + 'id' => $this->getKey(), + 'source_country_id' => $this->source_country_id ?? null, + 'source_country_name' => null, + 'destination_country_id' => $this->destination_country_id ?? null, + 'destination_country_name' => null, + 'parent_id' => $this->parent_id ?? null, + 'sender_receiver_id' => $this->sender_receiver_id ?? null, + 'sender_receiver_name' => null, + 'user_id' => $this->user_id ?? null, + 'user_name' => null, + 'service_id' => $this->service_id ?? null, + 'service_name' => null, + 'transaction_form_id' => $this->transaction_form_id ?? null, + 'ordered_at' => $this->ordered_at ?? null, + 'amount' => $this->amount ?? null, + 'currency' => $this->currency ?? null, + 'converted_amount' => $this->converted_amount ?? null, + 'converted_currency' => $this->converted_currency ?? null, + 'order_number' => $this->order_number ?? null, + 'risk_profile' => $this->risk_profile ?? null, + 'notes' => $this->notes ?? null, + 'is_refunded' => $this->is_refunded ?? null, + 'order_data' => $this->order_data ?? new \stdClass(), + 'status' => $this->status ?? null, + 'created_at' => $this->created_at ?? null, + 'updated_at' => $this->updated_at ?? null, + 'links' => $this->links ?? null, + ]; + + if (Core::packageExists('MetaData')) { + $data['source_country_name'] = $this->sourceCountry?->name ?? null; + $data['destination_country_name'] = $this->destinationCountry?->name ?? null; + } + if (Core::packageExists('Auth')) { + $data['user_name'] = $this->user?->name ?? null; + $data['sender_receiver_name'] = $this->senderReceiver?->name ?? null; + } + if (Core::packageExists('Business')) { + $data['service_name'] = $this->service?->service_name ?? null; + } + + return $data; } } diff --git a/src/Http/Resources/WalletTransferCollection.php b/src/Http/Resources/WalletTransferCollection.php index 74aec23..3946ff6 100644 --- a/src/Http/Resources/WalletTransferCollection.php +++ b/src/Http/Resources/WalletTransferCollection.php @@ -2,6 +2,7 @@ namespace Fintech\Remit\Http\Resources; +use Fintech\Core\Facades\Core; use Fintech\Core\Supports\Constant; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\ResourceCollection; @@ -16,7 +17,58 @@ class WalletTransferCollection extends ResourceCollection */ public function toArray($request) { - return parent::toArray($request); + return $this->collection->map(function ($deposit) { + $data = [ + 'id' => $deposit->getKey(), + 'source_country_id' => $deposit->source_country_id ?? null, + 'source_country_name' => null, + 'destination_country_id' => $deposit->destination_country_id ?? null, + 'destination_country_name' => null, + 'parent_id' => $deposit->parent_id ?? null, + 'sender_receiver_id' => $deposit->sender_receiver_id ?? null, + 'sender_receiver_name' => null, + 'user_id' => $deposit->user_id ?? null, + 'user_name' => null, + 'service_id' => $deposit->service_id ?? null, + 'service_name' => null, + 'transaction_form_id' => $deposit->transaction_form_id ?? null, + 'transaction_form_name' => $deposit->transaction_form_name ?? null, + 'ordered_at' => $deposit->ordered_at ?? null, + 'amount' => $deposit->amount ?? null, + 'currency' => $deposit->currency ?? null, + 'converted_amount' => $deposit->converted_amount ?? null, + 'converted_currency' => $deposit->converted_currency ?? null, + 'order_number' => $deposit->order_number ?? null, + 'risk_profile' => $deposit->risk_profile ?? null, + 'notes' => $deposit->notes ?? null, + 'is_refunded' => $deposit->is_refunded ?? null, + 'order_data' => $deposit->order_data ?? new \stdClass(), + 'status' => $deposit->status ?? null, + 'created_at' => $deposit->created_at ?? null, + 'updated_at' => $deposit->updated_at ?? null, + 'links' => $deposit->links ?? null, + ]; + + if (Core::packageExists('MetaData')) { + $data['source_country_name'] = $deposit->sourceCountry?->name ?? null; + $data['destination_country_name'] = $deposit->destinationCountry?->name ?? null; + } + if (Core::packageExists('Auth')) { + $data['user_name'] = $deposit->user?->name ?? null; + $data['sender_receiver_name'] = $deposit->senderReceiver?->name ?? null; + } + if (Core::packageExists('Business')) { + $data['service_name'] = $deposit->service?->service_name ?? null; + } + if (Core::packageExists('Business')) { + $data['service_name'] = $deposit->service?->service_name ?? null; + } + if (Core::packageExists('Transaction')) { + $data['transaction_form_name'] = $deposit->transactionForm?->name ?? null; + } + + return $data; + })->toArray(); } /** diff --git a/src/Http/Resources/WalletTransferResource.php b/src/Http/Resources/WalletTransferResource.php index 947ed49..e930415 100644 --- a/src/Http/Resources/WalletTransferResource.php +++ b/src/Http/Resources/WalletTransferResource.php @@ -2,6 +2,7 @@ namespace Fintech\Remit\Http\Resources; +use Fintech\Core\Facades\Core; use Illuminate\Http\Resources\Json\JsonResource; class WalletTransferResource extends JsonResource @@ -14,6 +15,48 @@ class WalletTransferResource extends JsonResource */ public function toArray($request) { - return parent::toArray($request); + $data = [ + 'id' => $this->getKey(), + 'source_country_id' => $this->source_country_id ?? null, + 'source_country_name' => null, + 'destination_country_id' => $this->destination_country_id ?? null, + 'destination_country_name' => null, + 'parent_id' => $this->parent_id ?? null, + 'sender_receiver_id' => $this->sender_receiver_id ?? null, + 'sender_receiver_name' => null, + 'user_id' => $this->user_id ?? null, + 'user_name' => null, + 'service_id' => $this->service_id ?? null, + 'service_name' => null, + 'transaction_form_id' => $this->transaction_form_id ?? null, + 'ordered_at' => $this->ordered_at ?? null, + 'amount' => $this->amount ?? null, + 'currency' => $this->currency ?? null, + 'converted_amount' => $this->converted_amount ?? null, + 'converted_currency' => $this->converted_currency ?? null, + 'order_number' => $this->order_number ?? null, + 'risk_profile' => $this->risk_profile ?? null, + 'notes' => $this->notes ?? null, + 'is_refunded' => $this->is_refunded ?? null, + 'order_data' => $this->order_data ?? new \stdClass(), + 'status' => $this->status ?? null, + 'created_at' => $this->created_at ?? null, + 'updated_at' => $this->updated_at ?? null, + 'links' => $this->links ?? null, + ]; + + if (Core::packageExists('MetaData')) { + $data['source_country_name'] = $this->sourceCountry?->name ?? null; + $data['destination_country_name'] = $this->destinationCountry?->name ?? null; + } + if (Core::packageExists('Auth')) { + $data['user_name'] = $this->user?->name ?? null; + $data['sender_receiver_name'] = $this->senderReceiver?->name ?? null; + } + if (Core::packageExists('Business')) { + $data['service_name'] = $this->service?->service_name ?? null; + } + + return $data; } } From a4081c58d17f01e7413f809a70a403a204f7abd7 Mon Sep 17 00:00:00 2001 From: MD ARIFUL HAQUE Date: Tue, 20 Feb 2024 23:37:03 +0600 Subject: [PATCH 2/2] LP-179 2 Remit API LISTs response same, need to adjust --- src/Http/Requests/IndexBankTransferRequest.php | 2 ++ src/Http/Requests/IndexCashPickupRequest.php | 2 ++ .../Requests/IndexWalletTransferRequest.php | 2 ++ .../Eloquent/BankTransferRepository.php | 17 +++++++++++++++++ 4 files changed, 23 insertions(+) diff --git a/src/Http/Requests/IndexBankTransferRequest.php b/src/Http/Requests/IndexBankTransferRequest.php index 6a9b1fa..ec9084c 100644 --- a/src/Http/Requests/IndexBankTransferRequest.php +++ b/src/Http/Requests/IndexBankTransferRequest.php @@ -31,6 +31,8 @@ public function rules(): array 'sort' => ['string', 'nullable', 'min:2', 'max:255'], 'dir' => ['string', 'min:3', 'max:4'], 'trashed' => ['boolean', 'nullable'], + 'service_id' => ['integer', 'nullable'], + 'service_slug' => ['string', 'nullable'], ]; } diff --git a/src/Http/Requests/IndexCashPickupRequest.php b/src/Http/Requests/IndexCashPickupRequest.php index c0e4cb5..0d49dd2 100644 --- a/src/Http/Requests/IndexCashPickupRequest.php +++ b/src/Http/Requests/IndexCashPickupRequest.php @@ -31,6 +31,8 @@ public function rules(): array 'sort' => ['string', 'nullable', 'min:2', 'max:255'], 'dir' => ['string', 'min:3', 'max:4'], 'trashed' => ['boolean', 'nullable'], + 'service_id' => ['integer', 'nullable'], + 'service_slug' => ['string', 'nullable'], ]; } diff --git a/src/Http/Requests/IndexWalletTransferRequest.php b/src/Http/Requests/IndexWalletTransferRequest.php index 6d46112..dbd7cc5 100644 --- a/src/Http/Requests/IndexWalletTransferRequest.php +++ b/src/Http/Requests/IndexWalletTransferRequest.php @@ -31,6 +31,8 @@ public function rules(): array 'sort' => ['string', 'nullable', 'min:2', 'max:255'], 'dir' => ['string', 'min:3', 'max:4'], 'trashed' => ['boolean', 'nullable'], + 'service_id' => ['integer', 'nullable'], + 'service_slug' => ['string', 'nullable'], ]; } diff --git a/src/Repositories/Eloquent/BankTransferRepository.php b/src/Repositories/Eloquent/BankTransferRepository.php index 5bdc889..2b9a03b 100644 --- a/src/Repositories/Eloquent/BankTransferRepository.php +++ b/src/Repositories/Eloquent/BankTransferRepository.php @@ -4,6 +4,9 @@ use Fintech\Remit\Interfaces\BankTransferRepository as InterfacesBankTransferRepository; use Fintech\Transaction\Repositories\Eloquent\OrderRepository; +use Illuminate\Contracts\Container\BindingResolutionException; +use Illuminate\Contracts\Pagination\Paginator; +use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; use InvalidArgumentException; @@ -22,4 +25,18 @@ public function __construct() $this->model = $model; } + + /** + * return a list or pagination of items from + * filtered options + * + * @return Paginator|Collection + * + * @throws BindingResolutionException + */ + public function list(array $filters = []) + { + return parent::list($filters); + + } }