app/interactors/reject_repeat_messages.rb

Summary

Maintainability
A
0 mins
Test Coverage
# 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