app/interactors/reject_repeat_messages.rb
# frozen_string_literal: true
##
# Tracks message id's to ensure there are no repeats. Otherwise telegram would be liable to occasionally duplicate old (stale) messages.
#
class RejectRepeatMessages
include Interactor
def call
current_messages_ids = MessageTrack.all.pluck(:message_id)
if current_messages_ids.include?(context.message.id)
context.fail!
else
MessageTrack.create(message_id: context.message.id)
end
end
end