Fix BillpplzTransactionSummaryController cont'd

This commit is contained in:
Afiq Hamzah
2025-04-27 11:26:28 +08:00
parent 8054392414
commit bb432b8516
@@ -33,36 +33,29 @@ class BillplzTransactionSummaryController extends Controller
$billIds = $transactionData->map(fn($x) => ['bill_id' => $x['bill_id'], 'account_own_by' => $x['account_own_by']]);
$billIds = $billIds->chunk(40);
$queryBillIdsURL = $billIds->map(fn($x) => url(config('api.url_arrahn_portal') . '/api/billplz', ['bill_ids' => json_encode($x)]));
$billIds = $billIds->chunk(50);
$queryBillIdsURL = $billIds->map(fn($x) => config('api.url_arrahn_portal') . '/api/billplz?bill_ids=' . json_encode($x));
$getBillplzPromise = function($url){
return Http::async()->get($url);
};
$resolveBillplzPromise = function($promise){
$billplzBillsPromise = $promise->wait()->json();
if($billplzBillsPromise->failed()) {
Log::error("ArrahnPay Portal API request failed for URL: {$$billplzBillsPromise->effectiveUri()->__toString()}", [
'status' => $billplzBillsPromise->status(),
'body' => $billplzBillsPromise->body(),
]);
abort( response('Portal ArrahnPay kemungkinan tidak beroperasi. Waktu Operasi Portal ArrahnPay adalah dari 7.30 AM hingga 11.30 PM', 503) );
}
return $billplzBillsPromise;
try{
$billplzBillsPromise = $promise->wait()->json();
}catch(\Exception $e){
Log::error("ArrahnPay Portal API request failed for URL: {$$billplzBillsPromise->effectiveUri()->__toString()}", [
'error' => $e->getMessage(),
]);
abort( response('Portal ArrahnPay kemungkinan tidak beroperasi. Waktu Operasi Portal ArrahnPay adalah dari 7.30 AM hingga 11.30 PM', 503) );
}
return $billplzBillsPromise;
};
$queryBillIdsURL = $queryBillIdsURL->map(fn($x) => $getBillplzPromise($x))
->map(fn($x) => $resolveBillplzPromise($x));
dd($queryBillIdsURL->all());
$mergeBillplzResponse = function($externalArray) {
$merged = [];
@@ -80,7 +73,10 @@ class BillplzTransactionSummaryController extends Controller
return array_map('array_values', $merged);
};
$billplzBillsResponse = $billIds->map(fn($x) => $getBillplzResponse($x));
$billplzBillsResponse = $queryBillIdsURL->map(fn($x) => $getBillplzPromise($x))
->map(fn($x) => $resolveBillplzPromise($x))
->all();
$billplzBills = $mergeBillplzResponse($billplzBillsResponse);
$data = array_map(fn($x, $y) => $this->processBillplzBills($x, $y), $billplzBills, [$transactionDataKOOP, $transactionDataPKB]);