about summary refs log tree commit diff
path: root/app/workers
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2020-01-26 22:43:18 +0100
committerGitHub <noreply@github.com>2020-01-26 22:43:18 +0100
commit401f32f9eedf9f41c097ee01c1f6203eae568663 (patch)
tree90b96c56bb3c836e01d5fab8103fe6eed1548b78 /app/workers
parent2f8c3c17ee26dc21ce94959b0ea18984e7bc5560 (diff)
Fix expired announcements being re-published (#12964)
Diffstat (limited to 'app/workers')
-rw-r--r--app/workers/publish_scheduled_announcement_worker.rb3
-rw-r--r--app/workers/scheduler/scheduled_statuses_scheduler.rb2
2 files changed, 3 insertions, 2 deletions
diff --git a/app/workers/publish_scheduled_announcement_worker.rb b/app/workers/publish_scheduled_announcement_worker.rb
index 6b5898bf5..4fc6bef2f 100644
--- a/app/workers/publish_scheduled_announcement_worker.rb
+++ b/app/workers/publish_scheduled_announcement_worker.rb
@@ -6,7 +6,8 @@ class PublishScheduledAnnouncementWorker
 
   def perform(announcement_id)
     announcement = Announcement.find(announcement_id)
-    announcement.update(published: true)
+
+    announcement.update(published: true, published_at: Time.now.utc, scheduled_at: nil) unless announcement.published?
 
     payload = InlineRenderer.render(announcement, nil, :announcement)
     payload = Oj.dump(event: :announcement, payload: payload)
diff --git a/app/workers/scheduler/scheduled_statuses_scheduler.rb b/app/workers/scheduler/scheduled_statuses_scheduler.rb
index 4262f1d01..9cfe949de 100644
--- a/app/workers/scheduler/scheduled_statuses_scheduler.rb
+++ b/app/workers/scheduler/scheduled_statuses_scheduler.rb
@@ -34,7 +34,7 @@ class Scheduler::ScheduledStatusesScheduler
   end
 
   def unpublish_expired_announcements!
-    expired_announcements.in_batches.update_all(published: false)
+    expired_announcements.in_batches.update_all(published: false, scheduled_at: nil)
   end
 
   def expired_announcements