Class: Wirecard::Request

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Request

Returns a new instance of Request.



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

def initialize(options)
  options = defaults.merge(options)
  raise ArgumentError 'Options must contain params: <parameters hash>' unless options[:params]
  raise ArgumentError 'Options must contain uri: <wirecard API uri>' unless options[:uri]
  
  @params = params_to_wirecard(options[:params])
  @implicit_fingerprint_order = keys_to_wirecard(options[:implicit_fingerprint_order])
  @uri = options[:uri]
end

Instance Attribute Details

#implicit_fingerprint_orderObject (readonly)

Returns the value of attribute implicit_fingerprint_order.



3
4
5
# File 'lib/wirecard/request.rb', line 3

def implicit_fingerprint_order
  @implicit_fingerprint_order
end

#paramsObject (readonly)

Returns the value of attribute params.



3
4
5
# File 'lib/wirecard/request.rb', line 3

def params
  @params
end

#uriObject (readonly)

Returns the value of attribute uri.



3
4
5
# File 'lib/wirecard/request.rb', line 3

def uri
  @uri
end

Instance Method Details

#defaultsObject



5
6
7
8
9
10
11
# File 'lib/wirecard/request.rb', line 5

def defaults
  @defaults ||= {
    params: nil,
    implicit_fingerprint_order: nil,
    uri: nil
  }
end

#to_postObject



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/wirecard/request.rb', line 23

def to_post
  post = Net::HTTP::Post.new(uri.request_uri)
  
  post.set_form_data(fingerprinted_params)
  
  post["Host"] = Wirecard.config.host
  post["User-Agent"] = Wirecard.config.user_agent
  post["Content-Type"] = 'application/x-www-form-urlencoded'
  post["Content-Length"] = post.body.bytesize.to_s
  post["Connection"] = 'close'
  
  post
end