diff --git a/services/notifikasi-wa.service.js b/services/notifikasi-wa.service.js index 13f5fbb..7e7368a 100644 --- a/services/notifikasi-wa.service.js +++ b/services/notifikasi-wa.service.js @@ -1029,7 +1029,7 @@ class NotifikasiWaService { this.stopCronJob(currentDeviceId); - const scheduleResult = await this.scheduleReminderJob( + const scheduleResult = await this.scheduleCustomReminderJob( currentDeviceId, deviceName, startDateObj, @@ -1041,7 +1041,7 @@ class NotifikasiWaService { if (isEndDatePassed) { console.log(`⏰ End_date sudah terlewati, mengirim reminder sekarang untuk ${deviceName}`); - const sendResult = await this.sendReminderNow( + const sendResult = await this.sendCustomReminderNow( currentDeviceId, deviceName, startDateObj, @@ -1069,7 +1069,7 @@ class NotifikasiWaService { } } - async scheduleReminderJob(deviceId, deviceName, startDateObj, endDateObj) { + async scheduleCustomReminderJob(deviceId, deviceName, startDateObj, endDateObj) { try { const now = dayjs().tz(this.timeZone); @@ -1090,11 +1090,9 @@ class NotifikasiWaService { const isEndDatePassed = now.isAfter(endDateObj) || now.isSame(endDateObj); if (isEndDatePassed) { - await this.sendReminderNow(deviceId, deviceName, startDateObj, endDateObj); - } else { - console.log(`End_date untuk ${deviceName} belum terlewati, menunggu...`); - this.rescheduleReminderCheck(deviceId, deviceName, startDateObj, endDateObj); + await this.sendCustomReminderNow(deviceId, deviceName, startDateObj, endDateObj); } + } catch (error) { console.error(`Gagal mengirim reminder untuk ${deviceName}:`, error); } @@ -1128,7 +1126,7 @@ class NotifikasiWaService { ); if (!checkNotifExist) { - await this.sendReminderNow(deviceId, deviceName, startDateObj, endDateObj); + await this.sendCustomReminderNow(deviceId, deviceName, startDateObj, endDateObj); } else { console.log(`Reminder untuk ${deviceName} sudah pernah dikirim`); } @@ -1166,28 +1164,7 @@ class NotifikasiWaService { } } - async rescheduleReminderCheck(deviceId, deviceName, startDateObj, endDateObj) { - const checkInterval = setInterval(async () => { - const now = dayjs().tz(this.timeZone); - const isEndDatePassed = now.isAfter(endDateObj) || now.isSame(endDateObj); - - if (isEndDatePassed) { - clearInterval(checkInterval); - console.log(`End_date terlewati untuk ${deviceName}, mengirim reminder...`); - try { - await this.sendReminderNow(deviceId, deviceName, startDateObj, endDateObj); - } catch (error) { - console.error(`Gagal mengirim reminder untuk ${deviceName}:`, error); - } - } - }, 60000); - - this.cronJobs.set(`interval_${deviceId}`, { - intervalId: checkInterval - }); - } - - async sendReminderNow(deviceId, deviceName, startDateObj, endDateObj) { + async sendCustomReminderNow(deviceId, deviceName, startDateObj, endDateObj) { try { console.log(`Mengirim reminder untuk ${deviceName}`); @@ -1347,37 +1324,6 @@ class NotifikasiWaService { } - getActiveCronJobs() { - const activeJobs = []; - for (const [key, value] of this.cronJobs) { - if (!key.startsWith('cron_') && !key.startsWith('interval_')) { - activeJobs.push({ - deviceId: key, - nextRun: value.nextRun, - startDate: value.startDate, - endDate: value.endDate - }); - } - } - return activeJobs; - } - - stopAllCronJobs() { - for (const [key, value] of this.cronJobs) { - if (value.timeoutId) { - clearTimeout(value.timeoutId); - } - if (value.intervalId) { - clearInterval(value.intervalId); - } - if (value.cronTask) { - value.cronTask.stop(); - } - } - this.cronJobs.clear(); - console.log('Semua cron job dihentikan'); - } - async restartWhatsapp() { try {