Class: CashPoster::Transaction

Inherits:
Object
  • Object
show all
Defined in:
lib/cash_poster/transaction.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.parsed_uriObject



4
5
6
# File 'lib/cash_poster/transaction.rb', line 4

def self.parsed_uri
  @parsed_uri ||= URI.parse(CashPoster::Config.api_url)
end

Instance Method Details

#execute(request) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/cash_poster/transaction.rb', line 8

def execute(request)
  uri = Transaction.parsed_uri
  if proxy = CashPoster::Config.proxy
    http = Net::HTTP::Proxy(proxy[:host], proxy[:port]).new(uri.host, uri.port)
  else
    http = Net::HTTP.new(uri.host, uri.port)
  end
  http.use_ssl = true
  http.ssl_version = 'SSLv3'
  http_req = Net::HTTP::Post.new(uri.path)
  http_req.body = request.params.to_query
  http_res = http.request(http_req)

  case http_res
  when Net::HTTPSuccess
    CashPoster::Response.parse(http_res.body)
      .tap { |res| res.request = request }
  else
    raise CashPoster::Error
  end
end