Class: SpreeCmCommissioner::Webhooks::Subscribers::MakeRequest

Inherits:
Spree::Webhooks::Subscribers::MakeRequest
  • Object
show all
Defined in:
app/services/spree_cm_commissioner/webhooks/subscribers/make_request.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url:, api_key:, webhook_payload_body:) ⇒ MakeRequest

Returns a new instance of MakeRequest.



9
10
11
12
# File 'app/services/spree_cm_commissioner/webhooks/subscribers/make_request.rb', line 9

def initialize(url:, api_key:, webhook_payload_body:)
  @api_key = api_key
  super(url: url, webhook_payload_body: webhook_payload_body)
end

Instance Attribute Details

#api_keyObject (readonly)

Returns the value of attribute api_key.



7
8
9
# File 'app/services/spree_cm_commissioner/webhooks/subscribers/make_request.rb', line 7

def api_key
  @api_key
end

Instance Method Details

#headersObject



14
15
16
17
18
19
20
21
# File 'app/services/spree_cm_commissioner/webhooks/subscribers/make_request.rb', line 14

def headers
  headers = {}

  headers['Content-Type'] = 'application/json'
  headers['X-Api-Key'] = api_key if api_key.present?

  headers
end

#requestObject

overrided



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/services/spree_cm_commissioner/webhooks/subscribers/make_request.rb', line 24

def request
  req = Net::HTTP::Post.new(uri_path, headers)
  req.body = webhook_payload_body
  @request ||= begin
    start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC)
    request_result = http.request(req)
    @execution_time_in_milliseconds = (Process.clock_gettime(Process::CLOCK_MONOTONIC) - start_time).in_milliseconds
    request_result
  end
rescue Errno::ECONNREFUSED, Net::ReadTimeout, SocketError
  Class.new do
    def self.code
      '0'
    end
  end
end