diff --git a/src/Http/Requests/IndexBankTransferRequest.php b/src/Http/Requests/IndexBankTransferRequest.php index e39245b..d0c7401 100644 --- a/src/Http/Requests/IndexBankTransferRequest.php +++ b/src/Http/Requests/IndexBankTransferRequest.php @@ -33,6 +33,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 0403fbe..57c345f 100644 --- a/src/Http/Requests/IndexCashPickupRequest.php +++ b/src/Http/Requests/IndexCashPickupRequest.php @@ -33,6 +33,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 402d38d..cd150f1 100644 --- a/src/Http/Requests/IndexWalletTransferRequest.php +++ b/src/Http/Requests/IndexWalletTransferRequest.php @@ -33,6 +33,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/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 5658af0..2a05c71 100644 --- a/src/Http/Resources/BankTransferResource.php +++ b/src/Http/Resources/BankTransferResource.php @@ -2,7 +2,7 @@ namespace Fintech\Remit\Http\Resources; -use Illuminate\Http\Request; +use Fintech\Core\Facades\Core; use Illuminate\Http\Resources\Json\JsonResource; class BankTransferResource extends JsonResource @@ -10,11 +10,53 @@ class BankTransferResource extends JsonResource /** * Transform the resource into an array. * - * @param Request + * @param \Illuminate\Http\Request * @return array */ 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 a37caf4..0e8ef5d 100644 --- a/src/Http/Resources/CashPickupResource.php +++ b/src/Http/Resources/CashPickupResource.php @@ -2,7 +2,7 @@ namespace Fintech\Remit\Http\Resources; -use Illuminate\Http\Request; +use Fintech\Core\Facades\Core; use Illuminate\Http\Resources\Json\JsonResource; class CashPickupResource extends JsonResource @@ -10,11 +10,53 @@ class CashPickupResource extends JsonResource /** * Transform the resource into an array. * - * @param Request + * @param \Illuminate\Http\Request * @return array */ 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 c55276b..e930415 100644 --- a/src/Http/Resources/WalletTransferResource.php +++ b/src/Http/Resources/WalletTransferResource.php @@ -2,7 +2,7 @@ namespace Fintech\Remit\Http\Resources; -use Illuminate\Http\Request; +use Fintech\Core\Facades\Core; use Illuminate\Http\Resources\Json\JsonResource; class WalletTransferResource extends JsonResource @@ -10,11 +10,53 @@ class WalletTransferResource extends JsonResource /** * Transform the resource into an array. * - * @param Request + * @param \Illuminate\Http\Request * @return array */ 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/Repositories/Eloquent/BankTransferRepository.php b/src/Repositories/Eloquent/BankTransferRepository.php index 3e3e576..9056219 100644 --- a/src/Repositories/Eloquent/BankTransferRepository.php +++ b/src/Repositories/Eloquent/BankTransferRepository.php @@ -5,6 +5,10 @@ use Fintech\Remit\Interfaces\BankTransferRepository as InterfacesBankTransferRepository; use Fintech\Remit\Models\BankTransfer; 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 +26,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); + + } }