Module: Arc::Queues

Defined in:
lib/architect/queues.rb

Class Method Summary collapse

Class Method Details

.publish(name:, payload:) ⇒ Object

publish a message to an SQS Queue



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 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