Class: ProviderKit::JsonRequest

Inherits:
Object
  • Object
show all
Includes:
Callbacks, Execution
Defined in:
lib/provider_kit/json_request.rb

Overview

Generic interface for working with http request/response and json

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Execution

#perform_now

Constructor Details

#initialize(url, method: :get, params: {}, headers: {}, mode: :json) ⇒ JsonRequest

Returns a new instance of JsonRequest.



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/provider_kit/json_request.rb', line 31

def initialize(url, method: :get, params: {}, headers: {}, mode: :json)
  @url        = url
  @method     = method
  @params     = params
  @headers    = headers
  @mode       = mode
  @process_id = SecureRandom.uuid

  prepare_request
  perform_now
end

Instance Attribute Details

#bodyObject (readonly)

Returns the value of attribute body.



15
16
17
# File 'lib/provider_kit/json_request.rb', line 15

def body
  @body
end

#headersObject (readonly)

Returns the value of attribute headers.



13
14
15
# File 'lib/provider_kit/json_request.rb', line 13

def headers
  @headers
end

#http_requestObject (readonly)

Returns the value of attribute http_request.



18
19
20
# File 'lib/provider_kit/json_request.rb', line 18

def http_request
  @http_request
end

#http_responseObject (readonly)

Returns the value of attribute http_response.



19
20
21
# File 'lib/provider_kit/json_request.rb', line 19

def http_response
  @http_response
end

#methodObject (readonly)

Returns the value of attribute method.



11
12
13
# File 'lib/provider_kit/json_request.rb', line 11

def method
  @method
end

#modeObject (readonly)

Returns the value of attribute mode.



14
15
16
# File 'lib/provider_kit/json_request.rb', line 14

def mode
  @mode
end

#paramsObject (readonly)

Returns the value of attribute params.



12
13
14
# File 'lib/provider_kit/json_request.rb', line 12

def params
  @params
end

#process_idObject (readonly)

Returns the value of attribute process_id.



16
17
18
# File 'lib/provider_kit/json_request.rb', line 16

def process_id
  @process_id
end

#urlObject (readonly)

Returns the value of attribute url.



10
11
12
# File 'lib/provider_kit/json_request.rb', line 10

def url
  @url
end

Instance Method Details

#jsonObject



43
44
45
46
47
# File 'lib/provider_kit/json_request.rb', line 43

def json
  JSON.parse(body)
rescue
  nil
end

#statusObject



53
54
55
# File 'lib/provider_kit/json_request.rb', line 53

def status
  http_response.code.to_i
end

#success?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/provider_kit/json_request.rb', line 49

def success?
  (200..299).include?(status)
end

#uriObject



57
58
59
# File 'lib/provider_kit/json_request.rb', line 57

def uri
  @uri ||= URI(url)
end