module Arc::Queues

Public Class Methods

publish(name:, payload:) click to toggle source

publish a message to an SQS Queue

# File lib/architect/queues.rb, line 12
def self.publish(name:, payload:)
  if ENV['NODE_ENV'] == 'testing'
    headers = {'content-type':'application/json'}
    uri = URI('https://localhost:3334/queues')
    http = Net::HTTP.new(uri.host, uri.port)
    req = Net::HTTP::Post.new(uri.path, headers)
    req.body = {'name': name, 'payload': payload}.to_json
    http.request(req).read_body
  else
    arc = Arc.reflect
    url = arc['queues'][name]
    sqs = Aws::SQS::Client.new
    sqs.send_message({
      queue_url: url, 
      delay_seconds: 0, 
      message_body: JSON.generate(payload)
    })
  end
end