Files
clientsflow/research/chatwoot/app/services/tiktok/read_status_service.rb

37 lines
769 B
Ruby

class Tiktok::ReadStatusService
include Tiktok::MessagingHelpers
pattr_initialize [:channel!, :content!]
def perform
return if channel.blank? || content.blank? || outbound_event? || conversation.blank?
::Conversations::UpdateMessageStatusJob.perform_later(conversation.id, last_read_timestamp)
end
def conversation
@conversation ||= find_conversation(channel, tt_conversation_id)
end
def tt_conversation_id
content[:conversation_id]
end
def last_read_timestamp
tt = content[:read][:last_read_timestamp]
Time.zone.at(tt.to_i / 1000).utc
end
def business_id
channel.business_id
end
def from_user_id
content[:from_user][:id]
end
def outbound_event?
business_id.to_s == from_user_id.to_s
end
end