feat: Auto resolve conversations after n days of inactivity (#1308)

fixes: #418
This commit is contained in:
Akash Srivastava
2020-11-01 12:53:25 +05:30
committed by GitHub
parent 65ed4c78a4
commit 074084b258
79 changed files with 358 additions and 22 deletions

View File

@@ -0,0 +1,16 @@
class AutoResolveConversationsJob < ApplicationJob
queue_as :medium
def perform(conversation_id)
conversation = Conversation.find_by(id: conversation_id)
return unless conversation&.auto_resolve_duration && conversation&.open?
time_since_last_activity = Time.zone.now.to_i - conversation.last_activity_at.to_i
time_left_to_auto_resolve = conversation.auto_resolve_duration.days.to_i - time_since_last_activity
if time_left_to_auto_resolve.positive?
AutoResolveConversationsJob.set(wait_until: time_left_to_auto_resolve.seconds.from_now).perform_later(conversation_id)
else
conversation.toggle_status
end
end
end