diff --git a/app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionWithDetailsLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionWithDetailsLogic.php new file mode 100644 index 00000000..b10950c2 --- /dev/null +++ b/app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionWithDetailsLogic.php @@ -0,0 +1,53 @@ + 'Retrieved Transactions With Details', + 'message' => 'You have successfully retrieved a list of transactions' + ]; + } + + + /** @var ListsTransactions */ + private $listsTransactions; + + /** + * ListTransactionsLogic constructor. + * @param ListsTransactions $listsTransactions + */ + public function __construct(ListsTransactions $listsTransactions) + { + $this->listsTransactions = $listsTransactions; + } + + + + public function logic(Request $request) : JsonResponse + { + Log::info($request->input('filters')); + + $query = $this->listsTransactions->execute($this->listsTransactions->deserializeFilters($request->input('filters'))); + + return $this->collectionResponse(MappableTransactionWithDetailsResource::collection($query)); + + } + + + +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 31424fd0..f97f1529 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -49,7 +49,7 @@ class Kernel extends ConsoleKernel ->appendOutputTo (storage_path().'/logs/auto_generate_invoice.log'); $schedule->command('billplz-failed-callback:fix') - ->dailyAt('00:00') + ->hourly() ->withoutOverlapping() ->appendOutputTo (storage_path().'/logs/fix_failed_callback_from_billplz.log'); } diff --git a/app/Http/Controllers/Transactions/ListMappableTransactionWithDetailsController.php b/app/Http/Controllers/Transactions/ListMappableTransactionWithDetailsController.php new file mode 100644 index 00000000..459be7a9 --- /dev/null +++ b/app/Http/Controllers/Transactions/ListMappableTransactionWithDetailsController.php @@ -0,0 +1,20 @@ +execute($request); + } +} diff --git a/app/Http/Resources/MappableTransactionWithDetailsResource.php b/app/Http/Resources/MappableTransactionWithDetailsResource.php new file mode 100644 index 00000000..8a6c3f8d --- /dev/null +++ b/app/Http/Resources/MappableTransactionWithDetailsResource.php @@ -0,0 +1,60 @@ +type === TransactionType::PAYMENT) { + $order = $this->owner->owner->owner; + $order_reference = $order->reference; + $company_module = $order->companyModule; + $debtor_code = $company_module->company->debtor; + + // } else { + } else if (in_array($this->type, [TransactionType::GROUP_PAYMENT, TransactionType::TOP_UP])) { + + // TransactionType::GROUP_PAYMENT, TransactionType::TOP_UP + $wallet = $this->owner; + $company_module = $this->owner->owner; + $connection = $company_module->inviters()->withPivot('invitee_reference')->first(); + $marking = $connection ? $connection->pivot->invitee_reference:''; + $bill_no = $this->bill_no; + } + else { + dd($this); + } + + return [ + 'id' => $this->id, + // 'owner_type' => $this->owner_type, + // 'owner_id' => $this->owner_type, + 'updated_at' => $this->updated_at, + 'debtor_code' => $debtor_code, + 'order_reference' => $order_reference, + 'bill_no' => $bill_no, + 'type' => $this->type, + 'marking' => $marking, + 'amount' => $this->amount, + ]; + } +} diff --git a/routes/apipub.php b/routes/apipub.php index 86809f05..aecebdb3 100644 --- a/routes/apipub.php +++ b/routes/apipub.php @@ -5,6 +5,7 @@ use Illuminate\Support\Facades\Route; Route::group(['middleware' => 'apipub', 'prefix' => 'v1', 'as' => 'apipub.'], function () { Route::group(['middleware' => 'token.check'], function () { Route::get('transactions/query', 'Transactions\ListTransactionsController@list')->name('transaction.list'); + Route::get('transactions/mappable/query/with-details', 'Transactions\ListMappableTransactionWithDetailsController@list')->name('transaction.mappable.list.with_details'); Route::get('transactions/mappable/query', 'Transactions\ListMappableTransactionsController@list')->name('transaction.mappable.list'); Route::get('groups/query', 'Transactions\ListGroupsController@list')->name('group.list'); });