Class: Paypal::Request
- Inherits:
-
Object
show all
- Includes:
- Formatters
- Defined in:
- lib/paypal_api/support/request.rb
Constant Summary
collapse
- PAYPAL_VERSION =
"84.0"
- @@paypal_info =
nil
- @@paypal_endpoint =
nil
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Formatters
#escape_uri_component
Constructor Details
#initialize(payload = {}) ⇒ Request
Returns a new instance of Request.
17
18
19
20
21
22
23
24
|
# File 'lib/paypal_api/support/request.rb', line 17
def initialize(payload = {})
config
@payload = payload
@payload.each do |k,v|
self.send("#{k}=", v)
end
end
|
Instance Attribute Details
#error_message ⇒ Object
Returns the value of attribute error_message.
15
16
17
|
# File 'lib/paypal_api/support/request.rb', line 15
def error_message
@error_message
end
|
#payload ⇒ Object
Returns the value of attribute payload.
15
16
17
|
# File 'lib/paypal_api/support/request.rb', line 15
def payload
@payload
end
|
#test_request ⇒ Object
Returns the value of attribute test_request.
15
16
17
|
# File 'lib/paypal_api/support/request.rb', line 15
def test_request
@test_request
end
|
Class Method Details
.required_keys ⇒ Object
37
38
39
|
# File 'lib/paypal_api/support/request.rb', line 37
def self.required_keys
@required
end
|
.sequential_keys ⇒ Object
41
42
43
|
# File 'lib/paypal_api/support/request.rb', line 41
def self.sequential_keys
@sequential
end
|
Instance Method Details
#make(&block) ⇒ Object
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# File 'lib/paypal_api/support/request.rb', line 101
def make(&block)
params_fulfilled?
validate!
response = make_request
if block
yield response
else
return response
end
do_request = lambda {
}
if @test_request
do_request.call
else
begin
do_request.call
rescue OpenURI::HTTPError => error
raise $!
rescue => err
raise $!
end
end
end
|
#make_request ⇒ Object
separated out so as not to stub Kernel.open in tests
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# File 'lib/paypal_api/support/request.rb', line 72
def make_request
response = nil
if self.respond_to? :headers
uri = URI.parse(request_string)
http = Net::HTTP.new(uri.host, uri.port)
http.set_debug_output $stderr if @test_request
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(uri.request_uri)
.each do |k,v|
request[k] = v
end
response = http.request(request).body
else
$stderr.puts(request_string) if @test_request
response = open(request_string)
end
return process_response(response)
end
|
#paypal_endpoint_with_defaults ⇒ Object
49
50
51
52
53
54
|
# File 'lib/paypal_api/support/request.rb', line 49
def paypal_endpoint_with_defaults
return "#{@@paypal_endpoint}?PWD=#{password}" +
"&USER=#{user}" +
"&SIGNATURE=#{signature}" +
"&VERSION=#{version}"
end
|
#process_response(response) ⇒ Object
97
98
99
|
# File 'lib/paypal_api/support/request.rb', line 97
def process_response(response)
Paypal::Response.new(response)
end
|
#request_host ⇒ Object
45
46
47
|
# File 'lib/paypal_api/support/request.rb', line 45
def request_host
URI.parse(@@paypal_endpoint).host
end
|
#request_string ⇒ Object
64
65
66
67
68
69
|
# File 'lib/paypal_api/support/request.rb', line 64
def request_string
(@payload.keys | self.class.required_keys).inject(paypal_endpoint_with_defaults + sequentials_string) do |acc, key|
"#{acc}&#{to_key(key)}=#{escape_uri_component(self.send(key))}"
end
end
|
#sequentials_string ⇒ Object
56
57
58
|
# File 'lib/paypal_api/support/request.rb', line 56
def sequentials_string
self.class.sequential_keys.map{|k| self.send(k).to_query_string }.join
end
|
#to_key(symbol) ⇒ Object
60
61
62
|
# File 'lib/paypal_api/support/request.rb', line 60
def to_key(symbol)
return symbol.to_s.gsub(/[^a-z0-9]/i, "").upcase
end
|
#valid? ⇒ Boolean
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/paypal_api/support/request.rb', line 26
def valid?
begin
params_fulfilled?
validate!
return true
rescue
@error_message = $!.message
return false
end
end
|