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
|
* @param string $accountNumber
|
||||||
* @return array|null
|
* @return array|null
|
||||||
@@ -85,6 +85,21 @@ class UpdateAtmCardBranchCurrencyJob implements ShouldQueue
|
|||||||
private function getAccountInfo(string $accountNumber): ?array
|
private function getAccountInfo(string $accountNumber): ?array
|
||||||
{
|
{
|
||||||
try {
|
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;
|
$url = env('FIORANO_URL') . self::API_BASE_PATH;
|
||||||
$path = self::API_INQUIRY_PATH;
|
$path = self::API_INQUIRY_PATH;
|
||||||
$data = [
|
$data = [
|
||||||
|
|||||||
Reference in New Issue
Block a user