From dbdeceb4c01557ce14b7314d6297118683da4673 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 13 Jun 2025 14:33:47 +0700 Subject: [PATCH] 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 --- app/Jobs/UpdateAtmCardBranchCurrencyJob.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/Jobs/UpdateAtmCardBranchCurrencyJob.php b/app/Jobs/UpdateAtmCardBranchCurrencyJob.php index 90829d8..7b6a1ab 100644 --- a/app/Jobs/UpdateAtmCardBranchCurrencyJob.php +++ b/app/Jobs/UpdateAtmCardBranchCurrencyJob.php @@ -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 = [