class CycloneLariat::SqsClient

Constants

SQS_SUFFIX

Public Instance Methods

publish(msg, dest: nil, topic: nil) click to toggle source
# File lib/cyclone_lariat/sqs_client.rb, line 14
def publish(msg, dest: nil, topic: nil)
  raise ArgumentError, 'You should define dest or topic' if dest.nil? && topic.nil?

  topic ||= [instance, msg.kind, SQS_SUFFIX, publisher, msg.type, dest].join('-')

  aws_client.send_message(
    queue_url: url(topic),
    message_body: msg.to_json
  )
end
publish_command(type, dest: nil, data: {}, version: self.version, uuid: SecureRandom.uuid, topic: nil) click to toggle source
# File lib/cyclone_lariat/sqs_client.rb, line 29
def publish_command(type, dest: nil, data: {}, version: self.version, uuid: SecureRandom.uuid, topic: nil)
  publish command(type, data: data, version: version, uuid: uuid), dest: dest, topic: topic
end
publish_event(type, dest: nil, data: {}, version: self.version, uuid: SecureRandom.uuid, topic: nil) click to toggle source
# File lib/cyclone_lariat/sqs_client.rb, line 25
def publish_event(type, dest: nil, data: {}, version: self.version, uuid: SecureRandom.uuid, topic: nil)
  publish event(type, data: data, version: version, uuid: uuid), dest: dest, topic: topic
end

Private Instance Methods

url(topic_name) click to toggle source
# File lib/cyclone_lariat/sqs_client.rb, line 35
def url(topic_name)
  aws_client.get_queue_url(queue_name: topic_name).queue_url
rescue Aws::SQS::Errors::NonExistentQueue => _e
  raise Errors::TopicNotFound.new(expected_topic: topic_name, existed_topics: aws_client.list_queues)
end