Class: Billogram::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/billogram/request.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, url, params = {}) ⇒ Request

Returns a new instance of Request.



7
8
9
10
11
# File 'lib/billogram/request.rb', line 7

def initialize(type, url, params = {})
  @url = url
  @type = type
  @params = params
end

Instance Attribute Details

#paramsObject (readonly)

Returns the value of attribute params.



5
6
7
# File 'lib/billogram/request.rb', line 5

def params
  @params
end

#typeObject (readonly)

Returns the value of attribute type.



5
6
7
# File 'lib/billogram/request.rb', line 5

def type
  @type
end

#urlObject (readonly)

Returns the value of attribute url.



5
6
7
# File 'lib/billogram/request.rb', line 5

def url
  @url
end

Instance Method Details

#contentObject



13
14
15
16
17
18
19
20
21
22
# File 'lib/billogram/request.rb', line 13

def content
  case type
  when :post, :put
    { body: params.to_json }
  when :get
    { query: params }
  when :delete
    {}
  end
end

#executeObject



24
25
26
# File 'lib/billogram/request.rb', line 24

def execute
  response.success? ? response['data'] : raise_from(response)
end

#raise_from(response) ⇒ Object



28
29
30
# File 'lib/billogram/request.rb', line 28

def raise_from(response)
  raise Billogram::Error.from_response(response)
end

#responseObject



32
33
34
# File 'lib/billogram/request.rb', line 32

def response
  @response ||= Billogram.client.send(type, "/#{url}", content)
end