Class: SaloPulse::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/salopulse/client.rb

Class Method Summary collapse

Class Method Details

.send_event(payload) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/salopulse/client.rb', line 10

def send_event(payload)
  config = SaloPulse.config

  return unless config.valid?

  uri = URI.parse(config.endpoint)

  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl      = uri.scheme == 'https'
  http.read_timeout = config.timeout
  http.open_timeout = config.timeout

  request = Net::HTTP::Post.new(uri.request_uri)
  request['Content-Type'] = 'application/json'
  request['Accept']       = 'application/json'

  body = payload.merge(
    api_key: config.api_key,
    environment: config.environment
  )

  request.body = JSON.generate(body)

  http.request(request)
rescue StandardError => e
  log_error(e)
  nil
end