feat(webstatement): optimalkan pengambilan informasi account untuk UpdateAtmCardBranchCurrencyJob
- **Penambahan Logika Pengambilan Data:** - Menambahkan proses pengambilan data account dari model `Account` sebelum memanggil API Fiorano. - Melakukan pencarian data berdasarkan nomor rekening (`account_number`) melalui query pada model. - Jika data ditemukan, mengembalikan informasi account berupa response format yang menyerupai hasil dari API. - **Optimisasi Response:** - Menyusun data response lengkap dari model `Account`, seperti kode cabang (`branch_code`), mata uang (`currency`), kategori pembukaan (`open_category`), dan properti lain yang relevan. - Field response menyertakan nilai default atau diisi dengan data lain yang ada dalam model. - **Fallback API Fiorano:** - Jika data dari database tidak ditemukan, tetap menggunakan mekanisme existing untuk melakukan request ke API Fiorano. - Tidak ada perubahan lain pada struktur permintaan atau penanganan response Fiorano. - **Komentar dan Dokumentasi:** - Memperbarui komentar pada fungsi `getAccountInfo` untuk mencerminkan logika terbaru. - Menjelaskan fallback ke API jika data model tidak tersedia melalui komentar inline agar lebih mudah dipahami. - **Peningkatan Efisiensi:** - Mengurangi frekuensi panggilan API Fiorano dengan memanfaatkan data lokal terlebih dahulu, sehingga mempercepat proses eksekusi job. Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
@@ -77,7 +77,7 @@ class UpdateAtmCardBranchCurrencyJob implements ShouldQueue
|
||||
}
|
||||
|
||||
/**
|
||||
* Get account information from the API
|
||||
* Get account information from Account model or API
|
||||
*
|
||||
* @param string $accountNumber
|
||||
* @return array|null
|
||||
@@ -85,6 +85,21 @@ class UpdateAtmCardBranchCurrencyJob implements ShouldQueue
|
||||
private function getAccountInfo(string $accountNumber): ?array
|
||||
{
|
||||
try {
|
||||
// Coba dapatkan data dari model Account terlebih dahulu
|
||||
$account = \Modules\Webstatement\Models\Account::where('account_number', $accountNumber)->first();
|
||||
|
||||
if ($account) {
|
||||
// Jika account ditemukan, format data sesuai dengan format response dari API
|
||||
return [
|
||||
'responseCode' => '00',
|
||||
'acctCompany' => $account->branch_code,
|
||||
'acctCurrency' => $account->currency,
|
||||
'openCategory' => $account->open_category
|
||||
// Tambahkan field lain yang mungkin diperlukan
|
||||
];
|
||||
}
|
||||
|
||||
// Jika tidak ditemukan di database, ambil dari Fiorano API
|
||||
$url = env('FIORANO_URL') . self::API_BASE_PATH;
|
||||
$path = self::API_INQUIRY_PATH;
|
||||
$data = [
|
||||
|
||||
Reference in New Issue
Block a user