Merge remote-tracking branch 'origin/master'

This commit is contained in:
Omair Saleh
2023-07-10 12:52:35 +08:00
6 changed files with 132 additions and 1 deletions
@@ -0,0 +1,53 @@
<?php
namespace App\Classes\Modules\Transactions\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Transactions\Services\ListsTransactions;
use App\Http\Resources\MappableTransactionWithDetailsResource;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class ListMappableTransactionWithDetailsLogic extends AbstractControllerLogic
{
/**
* @return array
*/
protected function notification():array {
return [
'title' => '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));
}
}
+1 -1
View File
@@ -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');
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\Transactions;
use App\Classes\Modules\Transactions\ControllersLogic\ListMappableTransactionWithDetailsLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class ListMappableTransactionWithDetailsController
{
/**
* @param Request $request
* @return JsonResponse
*/
public function list(Request $request, ListMappableTransactionWithDetailsLogic $logic) : JsonResponse {
return $logic->execute($request);
}
}
@@ -50,6 +50,7 @@ class CompanyModuleResource extends JsonResource
'warehouseCharges' => array_key_exists($this->id, $segmentConstant) ? $segmentConstant[$this->id] : null,
'connections' => $this->connections,
'contact' => new ContactResource ($this->when($this->has('contacts'), $this->contacts->first())),
'debtor' => $this->company->debtor,
];
}
@@ -0,0 +1,56 @@
<?php
namespace App\Http\Resources;
use App\Classes\ValueObjects\Constants\TransactionType;
use Illuminate\Http\Resources\Json\JsonResource;
use Exception;
class MappableTransactionWithDetailsResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
$debtor_code = null;
$order_reference = null; // if owner is payment
$bill_no = null; // if not payment
$marking = null; // if not payment
if ($this->type === TransactionType::PAYMENT) {
$order = $this->owner->owner->owner;
$order_reference = $order->reference;
$company_module = $order->companyModule;
$debtor_code = $company_module->company->debtor;
} else if (in_array($this->type, [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 {
throw new Exception("Transaction Type not allowed");
}
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,
];
}
}
+1
View File
@@ -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');
});