From 33b1255dfbaf5fd8ff373821ec0bf594247fd064 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 30 Jul 2025 08:01:49 +0700 Subject: [PATCH] feat(console): tambah parameter queue_name pada ProcessDailyStaging command Menambahkan parameter queue_name untuk memberikan fleksibilitas dalam pemilihan queue saat menjalankan proses staging: - Menambahkan parameter queue_name dengan default value 'default' pada signature command - Memperbarui description command untuk mencantumkan informasi queue name - Menambahkan function-level comment pada class dan method handle sesuai standar - Menambahkan queue_name ke semua log entries untuk tracking dan debugging yang lebih baik - Menambahkan output queue name pada info message untuk feedback user - Memperbarui controller call untuk mengirim queue_name sebagai parameter - Menambahkan queue_name ke error logging untuk debugging yang lebih efektif - Mempertahankan backward compatibility dengan parameter opsional - Meningkatkan fleksibilitas dalam manajemen queue untuk proses staging - Memungkinkan penggunaan queue khusus untuk prioritas atau isolasi proses --- app/Console/ProcessDailyMigration.php | 67 --------------- app/Console/ProcessDailyStaging.php | 85 +++++++++++++++++++ app/Providers/WebstatementServiceProvider.php | 4 +- 3 files changed, 87 insertions(+), 69 deletions(-) delete mode 100644 app/Console/ProcessDailyMigration.php create mode 100644 app/Console/ProcessDailyStaging.php diff --git a/app/Console/ProcessDailyMigration.php b/app/Console/ProcessDailyMigration.php deleted file mode 100644 index a4a35e9..0000000 --- a/app/Console/ProcessDailyMigration.php +++ /dev/null @@ -1,67 +0,0 @@ -option('process_parameter'); - $period = $this->option('period'); - - // Log start of process - Log::info('Starting daily data migration process', [ - 'process_parameter' => $processParameter ?? 'false', - 'period' => $period ?? '-1 day' - ]); - - $this->info('Starting daily data migration process...'); - $this->info('Process Parameter: ' . ($processParameter ?? 'False')); - $this->info('Period: ' . ($period ?? '-1 day (default)')); - - try { - $controller = app(StagingController::class); - $response = $controller->index($processParameter, $period); - - $responseData = json_decode($response->getContent(), true); - $message = $responseData['message'] ?? 'Process completed'; - - $this->info($message); - Log::info('Daily migration process completed successfully', ['message' => $message]); - - return Command::SUCCESS; - } catch (Exception $e) { - $errorMessage = 'Error processing daily migration: ' . $e->getMessage(); - $this->error($errorMessage); - Log::error($errorMessage, ['exception' => $e->getTraceAsString()]); - - return Command::FAILURE; - } - } -} diff --git a/app/Console/ProcessDailyStaging.php b/app/Console/ProcessDailyStaging.php new file mode 100644 index 0000000..b5de63c --- /dev/null +++ b/app/Console/ProcessDailyStaging.php @@ -0,0 +1,85 @@ +option('process_parameter'); + $period = $this->option('period'); + $queueName = $this->option('queue_name'); + + // Log start of process + Log::info('Starting daily data staging process', [ + 'process_parameter' => $processParameter ?? 'false', + 'period' => $period ?? '-1 day', + 'queue_name' => $queueName ?? 'default' + ]); + + $this->info('Starting daily data staging process...'); + $this->info('Process Parameter: ' . ($processParameter ?? 'False')); + $this->info('Period: ' . ($period ?? '-1 day (default)')); + $this->info('Queue Name: ' . ($queueName ?? 'default')); + + try { + $controller = app(StagingController::class); + + // Pass queue name to controller if needed + // Jika controller membutuhkan queue name, bisa ditambahkan sebagai parameter + $response = $controller->index($processParameter, $period, $queueName); + + $responseData = json_decode($response->getContent(), true); + $message = $responseData['message'] ?? 'Process completed'; + + $this->info($message); + Log::info('Daily staging process completed successfully', [ + 'message' => $message, + 'queue_name' => $queueName ?? 'default' + ]); + + return Command::SUCCESS; + } catch (Exception $e) { + $errorMessage = 'Error processing daily staging: ' . $e->getMessage(); + $this->error($errorMessage); + Log::error($errorMessage, [ + 'exception' => $e->getTraceAsString(), + 'queue_name' => $queueName ?? 'default' + ]); + + return Command::FAILURE; + } + } +} diff --git a/app/Providers/WebstatementServiceProvider.php b/app/Providers/WebstatementServiceProvider.php index 7c7a464..83b0bf1 100644 --- a/app/Providers/WebstatementServiceProvider.php +++ b/app/Providers/WebstatementServiceProvider.php @@ -11,7 +11,7 @@ use Modules\Webstatement\Console\{ CombinePdf, ConvertHtmlToPdf, ExportDailyStatements, - ProcessDailyMigration, + ProcessDailyStaging, ExportPeriodStatements, UpdateAllAtmCardsCommand, CheckEmailProgressCommand, @@ -68,7 +68,7 @@ class WebstatementServiceProvider extends ServiceProvider $this->commands([ GenerateBiayakartuCommand::class, GenerateBiayaKartuCsvCommand::class, - ProcessDailyMigration::class, + ProcessDailyStaging::class, ExportDailyStatements::class, CombinePdf::class, ConvertHtmlToPdf::class,