Class: RedCross::Trackers::HttpTracker

Inherits:
Base
  • Object
show all
Defined in:
lib/red_cross/trackers/http_tracker.rb

Defined Under Namespace

Classes: FailedPushingToEventbus

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Logging

#log, logger

Constructor Details

#initialize(host) ⇒ HttpTracker

Returns a new instance of HttpTracker.



17
18
19
# File 'lib/red_cross/trackers/http_tracker.rb', line 17

def initialize(host)
  @eventbus_host = host
end

Instance Attribute Details

#eventbus_hostObject

Returns the value of attribute eventbus_host.



15
16
17
# File 'lib/red_cross/trackers/http_tracker.rb', line 15

def eventbus_host
  @eventbus_host
end

Instance Method Details

#eventbus_request(request_url, params, method = :get) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/red_cross/trackers/http_tracker.rb', line 37

def eventbus_request(request_url, params, method = :get)
  request = Typhoeus::Request.new(
      request_url,
      method: method,
      params: method == :get ? params : {},
      body: method == :post ? params.to_json : {}
  )
  request.on_complete do |response|
    if response.success?
      return true
    else
      raise FailedPushingToEventbus.new(response.response_code ,request_url, response.return_code)
    end
  end
  request.run
end

#flushObject



29
30
31
# File 'lib/red_cross/trackers/http_tracker.rb', line 29

def flush
  {}
end

#group(attrs, additional_args = {}) ⇒ Object



33
34
35
# File 'lib/red_cross/trackers/http_tracker.rb', line 33

def group(attrs, additional_args = {})
  {}
end

#identify(attrs, additional_args = {}) ⇒ Object



25
26
27
# File 'lib/red_cross/trackers/http_tracker.rb', line 25

def identify(attrs, additional_args = {})
  {}
end

#track(route, attrs, additional_args = {}) ⇒ Object



21
22
23
# File 'lib/red_cross/trackers/http_tracker.rb', line 21

def track(route, attrs, additional_args = {})
  eventbus_request(@eventbus_host + route, attrs.merge(additional_args), :post)
end