From a23da58fd8b4472b6f864002b4e36c70a7d8e478 Mon Sep 17 00:00:00 2001 From: Mazarin Date: Thu, 12 Jan 2023 12:55:01 -0500 Subject: [PATCH] fix: fix batch of reminders (monicahq/chandler#402) --- .../Jobs/ProcessScheduledContactReminders.php | 14 +++++++++----- .../RescheduleContactReminderForChannel.php | 2 ++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/Domains/Contact/ManageReminders/Jobs/ProcessScheduledContactReminders.php b/app/Domains/Contact/ManageReminders/Jobs/ProcessScheduledContactReminders.php index b6a4ae488c4..b4c5e047faf 100644 --- a/app/Domains/Contact/ManageReminders/Jobs/ProcessScheduledContactReminders.php +++ b/app/Domains/Contact/ManageReminders/Jobs/ProcessScheduledContactReminders.php @@ -57,16 +57,20 @@ public function handle() $this->updateScheduledContactReminderTriggeredAt($scheduledReminder); $this->updateNumberOfTimesTriggered($scheduledReminder->contact_reminder_id); + + (new RescheduleContactReminderForChannel())->execute([ + 'contact_reminder_id' => $scheduledReminder->contact_reminder_id, + 'user_notification_channel_id' => $scheduledReminder->user_notification_channel_id, + 'contact_reminder_scheduled_id' => $scheduledReminder->id, + ]); } } private function updateScheduledContactReminderTriggeredAt($scheduledReminder): void { - (new RescheduleContactReminderForChannel())->execute([ - 'contact_reminder_id' => $scheduledReminder->contact_reminder_id, - 'user_notification_channel_id' => $scheduledReminder->user_notification_channel_id, - 'contact_reminder_scheduled_id' => $scheduledReminder->id, - ]); + DB::table('contact_reminder_scheduled') + ->where('id', $scheduledReminder->id) + ->update(['triggered_at' => Carbon::now()]); } private function updateNumberOfTimesTriggered(int $id): void diff --git a/app/Domains/Contact/ManageReminders/Services/RescheduleContactReminderForChannel.php b/app/Domains/Contact/ManageReminders/Services/RescheduleContactReminderForChannel.php index 1a27a52082f..feabaf2c809 100644 --- a/app/Domains/Contact/ManageReminders/Services/RescheduleContactReminderForChannel.php +++ b/app/Domains/Contact/ManageReminders/Services/RescheduleContactReminderForChannel.php @@ -57,6 +57,8 @@ public function execute(array $data): void if ($this->contactReminder->type !== ContactReminder::TYPE_ONE_TIME) { $this->schedule(); + } else { + $this->contactReminder->delete(); } }