allorails 0.4.2 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +4 -0
- data/Gemfile.lock +26 -0
- data/Manifest +11 -5
- data/README.md +0 -1
- data/Rakefile +4 -4
- data/allorails.gemspec +6 -6
- data/lib/allorails/core.rb +1 -1
- data/lib/allorails/request/request.rb +1 -1
- data/lib/allorails/response/api_mapping_response.rb +93 -0
- data/lib/allorails/response/api_response.rb +27 -0
- data/lib/allorails/response/model.rb +45 -46
- data/lib/allorails/response/onetime_button_response.rb +28 -0
- data/lib/allorails/response/onetime_pricing_response.rb +37 -0
- data/lib/allorails/response/onetime_validate_codes_response.rb +81 -0
- data/lib/allorails/response/product_detail_response.rb +50 -0
- data/lib/allorails/response/transaction_detail_response.rb +94 -0
- data/lib/allorails/response/transaction_prepare_response.rb +36 -0
- data/lib/allorails.rb +15 -14
- metadata +23 -10
- data/lib/allorails/response/response.rb +0 -443
- data/test/allorails_spec.rb +0 -112
- data/test/test-conf-sample.yml +0 -11
- data/test/test-conf.yml +0 -12
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
allorails (0.4.2)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: http://rubygems.org/
|
8
|
+
specs:
|
9
|
+
diff-lcs (1.1.3)
|
10
|
+
nokogiri (1.5.5)
|
11
|
+
rspec (2.11.0)
|
12
|
+
rspec-core (~> 2.11.0)
|
13
|
+
rspec-expectations (~> 2.11.0)
|
14
|
+
rspec-mocks (~> 2.11.0)
|
15
|
+
rspec-core (2.11.1)
|
16
|
+
rspec-expectations (2.11.3)
|
17
|
+
diff-lcs (~> 1.1.3)
|
18
|
+
rspec-mocks (2.11.3)
|
19
|
+
|
20
|
+
PLATFORMS
|
21
|
+
ruby
|
22
|
+
|
23
|
+
DEPENDENCIES
|
24
|
+
allorails!
|
25
|
+
nokogiri
|
26
|
+
rspec
|
data/Manifest
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
Gemfile
|
2
|
+
Gemfile.lock
|
3
|
+
Manifest
|
1
4
|
README.md
|
2
5
|
Rakefile
|
3
6
|
allorails.gemspec
|
@@ -8,9 +11,12 @@ lib/allorails/core.rb
|
|
8
11
|
lib/allorails/errors/errors.rb
|
9
12
|
lib/allorails/rails.rb
|
10
13
|
lib/allorails/request/request.rb
|
14
|
+
lib/allorails/response/api_mapping_response.rb
|
15
|
+
lib/allorails/response/api_response.rb
|
11
16
|
lib/allorails/response/model.rb
|
12
|
-
lib/allorails/response/
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
+
lib/allorails/response/onetime_button_response.rb
|
18
|
+
lib/allorails/response/onetime_pricing_response.rb
|
19
|
+
lib/allorails/response/onetime_validate_codes_response.rb
|
20
|
+
lib/allorails/response/product_detail_response.rb
|
21
|
+
lib/allorails/response/transaction_detail_response.rb
|
22
|
+
lib/allorails/response/transaction_prepare_response.rb
|
data/README.md
CHANGED
@@ -54,7 +54,6 @@ You can put your configuration options in a yaml file located at `config/allorai
|
|
54
54
|
# optional settings
|
55
55
|
# (the values below are the defaults)
|
56
56
|
default_hash: "sha1"
|
57
|
-
default_format: "json"
|
58
57
|
network_timeout: 20
|
59
58
|
network_protocol: "http"
|
60
59
|
network_port: 80
|
data/Rakefile
CHANGED
@@ -2,13 +2,13 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
4
|
|
5
|
-
Echoe.new('allorails', '0.
|
6
|
-
p.description = "Ruby client for the Allopass online payment
|
5
|
+
Echoe.new('allorails', '0.5.1') do |p|
|
6
|
+
p.description = "Ruby/Rails client for the Allopass online payment API"
|
7
7
|
p.url = "http://github.com/davb/allorails"
|
8
8
|
p.author = "Davide Bonapersona"
|
9
9
|
p.email = "davide@feeligo.com"
|
10
|
-
p.ignore_pattern = ["tmp/*", "script/*"]
|
10
|
+
p.ignore_pattern = ["tmp/*", "script/*", "spec/*"]
|
11
11
|
p.development_dependencies = []
|
12
12
|
end
|
13
13
|
|
14
|
-
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
|
14
|
+
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
|
data/allorails.gemspec
CHANGED
@@ -2,21 +2,21 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "allorails"
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.5.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Davide Bonapersona"]
|
9
|
-
s.date = "
|
10
|
-
s.description = "Ruby client for the Allopass online payment
|
9
|
+
s.date = "2013-01-15"
|
10
|
+
s.description = "Ruby/Rails client for the Allopass online payment API"
|
11
11
|
s.email = "davide@feeligo.com"
|
12
|
-
s.extra_rdoc_files = ["README.md", "lib/allorails.rb", "lib/allorails/api/api.rb", "lib/allorails/core.rb", "lib/allorails/errors/errors.rb", "lib/allorails/rails.rb", "lib/allorails/request/request.rb", "lib/allorails/response/model.rb", "lib/allorails/response/response.rb"]
|
13
|
-
s.files = ["README.md", "Rakefile", "allorails.gemspec", "init.rb", "lib/allorails.rb", "lib/allorails/api/api.rb", "lib/allorails/core.rb", "lib/allorails/errors/errors.rb", "lib/allorails/rails.rb", "lib/allorails/request/request.rb", "lib/allorails/response/model.rb", "lib/allorails/response/response.rb", "
|
12
|
+
s.extra_rdoc_files = ["README.md", "lib/allorails.rb", "lib/allorails/api/api.rb", "lib/allorails/core.rb", "lib/allorails/errors/errors.rb", "lib/allorails/rails.rb", "lib/allorails/request/request.rb", "lib/allorails/response/api_mapping_response.rb", "lib/allorails/response/api_response.rb", "lib/allorails/response/model.rb", "lib/allorails/response/onetime_button_response.rb", "lib/allorails/response/onetime_pricing_response.rb", "lib/allorails/response/onetime_validate_codes_response.rb", "lib/allorails/response/product_detail_response.rb", "lib/allorails/response/transaction_detail_response.rb", "lib/allorails/response/transaction_prepare_response.rb"]
|
13
|
+
s.files = ["Gemfile", "Gemfile.lock", "Manifest", "README.md", "Rakefile", "allorails.gemspec", "init.rb", "lib/allorails.rb", "lib/allorails/api/api.rb", "lib/allorails/core.rb", "lib/allorails/errors/errors.rb", "lib/allorails/rails.rb", "lib/allorails/request/request.rb", "lib/allorails/response/api_mapping_response.rb", "lib/allorails/response/api_response.rb", "lib/allorails/response/model.rb", "lib/allorails/response/onetime_button_response.rb", "lib/allorails/response/onetime_pricing_response.rb", "lib/allorails/response/onetime_validate_codes_response.rb", "lib/allorails/response/product_detail_response.rb", "lib/allorails/response/transaction_detail_response.rb", "lib/allorails/response/transaction_prepare_response.rb"]
|
14
14
|
s.homepage = "http://github.com/davb/allorails"
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Allorails", "--main", "README.md"]
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
s.rubyforge_project = "allorails"
|
18
18
|
s.rubygems_version = "1.8.21"
|
19
|
-
s.summary = "Ruby client for the Allopass online payment
|
19
|
+
s.summary = "Ruby/Rails client for the Allopass online payment API"
|
20
20
|
|
21
21
|
if s.respond_to? :specification_version then
|
22
22
|
s.specification_version = 3
|
data/lib/allorails/core.rb
CHANGED
@@ -108,7 +108,7 @@ module Allorails
|
|
108
108
|
# registers configuration options
|
109
109
|
add_option :accounts, {}
|
110
110
|
add_option :default_hash, 'sha1'
|
111
|
-
add_option :default_format,
|
111
|
+
add_option :default_format, Allorails::Request::ApiRequest::MAPPING_FORMAT
|
112
112
|
add_option :network_timeout, 20
|
113
113
|
add_option :network_protocol, 'http'
|
114
114
|
add_option :network_port, 80
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
|
3
|
+
module Allorails
|
4
|
+
module Response
|
5
|
+
|
6
|
+
## Basis of an object mapped API response
|
7
|
+
class ApiMappingResponse < Allorails::Response::ApiResponse
|
8
|
+
|
9
|
+
attr_reader :xml
|
10
|
+
|
11
|
+
##
|
12
|
+
# Constructor
|
13
|
+
# @param signature (string) Expected response signature
|
14
|
+
# @param headers (list) Response HTTP headers
|
15
|
+
# @param body (string) Raw response data
|
16
|
+
def initialize(signature, headers, body)
|
17
|
+
super(signature, headers, body)
|
18
|
+
# parse the XML response
|
19
|
+
@xml = Nokogiri.XML(body)
|
20
|
+
# error if no root element
|
21
|
+
raise Allorails::ApiWrongFormatResponseError if @xml.root.nil?
|
22
|
+
# verify the response
|
23
|
+
_verify
|
24
|
+
end
|
25
|
+
|
26
|
+
##
|
27
|
+
# Internal method checking the response
|
28
|
+
# @throws ApiRemoteErrorError If response doesn't contain valid XML
|
29
|
+
def _verify
|
30
|
+
raise Allorails::ApiRemoteErrorError if @xml.root[:code] != '0'
|
31
|
+
# call the parent _verify method which will check the signature
|
32
|
+
super
|
33
|
+
end
|
34
|
+
|
35
|
+
##
|
36
|
+
# Internal method allowing easy reading of XML nodes
|
37
|
+
# @param (sym) name of the node that needs to be read
|
38
|
+
# @param (Class) type to which the result should be cast
|
39
|
+
def self.node_reader(node_name, type = String)
|
40
|
+
# define a Proc to cast the node's text to the specified type
|
41
|
+
node_value = case true
|
42
|
+
when type == String then Proc.new{|x| x.text}
|
43
|
+
when type == Integer then Proc.new{|x| x.text.to_i}
|
44
|
+
when type == Float then Proc.new{|x| x.text.to_f}
|
45
|
+
when type == DateTime then Proc.new{|x|
|
46
|
+
if x.respond_to?(:attribute) && (ts = x.attribute('timestamp'))
|
47
|
+
DateTime.strptime(ts.value, "%s")
|
48
|
+
elsif x.respond_to?(:attribute) && (d = x.attribute('date'))
|
49
|
+
DateTime.strptime(d.value)
|
50
|
+
else
|
51
|
+
nil
|
52
|
+
end
|
53
|
+
}
|
54
|
+
else Proc.new{|x| type.new x}
|
55
|
+
end
|
56
|
+
# add a method accessing the node and casting the text
|
57
|
+
send :define_method, node_name do
|
58
|
+
node = xml.css(node_name.to_s).first
|
59
|
+
return node_value.call(node) unless node.nil?
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
##
|
64
|
+
# Internal method allowing easy reading of XML attributes
|
65
|
+
# @param (sym) name of the attribute that needs to be read
|
66
|
+
# @param (Class) type to which the result should be cast
|
67
|
+
def self.attribute_reader(attr_name, type = String)
|
68
|
+
# define a Proc to cast the attribute's value to the specified type
|
69
|
+
attr_value = case true
|
70
|
+
when type == String then Proc.new{|x| x.value}
|
71
|
+
when type == Integer then Proc.new{|x| x.value.to_i}
|
72
|
+
when type == Float then Proc.new{|x| x.value.to_f}
|
73
|
+
when type == DateTime then Proc.new{|x|
|
74
|
+
if x.respond_to?(:attribute) && (ts = x.attribute('timestamp'))
|
75
|
+
DateTime.strptime(ts.value, "%s")
|
76
|
+
elsif x.respond_to?(:attribute) && (d = x.attribute('date'))
|
77
|
+
DateTime.strptime(d.value)
|
78
|
+
else
|
79
|
+
nil
|
80
|
+
end
|
81
|
+
}
|
82
|
+
else Proc.new{|x| type.new x}
|
83
|
+
end
|
84
|
+
# add a method accessing the node and casting the text
|
85
|
+
send :define_method, attr_name do
|
86
|
+
att = xml.attribute(attr_name.to_s)
|
87
|
+
return attr_value.call(att) unless att.nil?
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Allorails
|
2
|
+
module Response
|
3
|
+
class ApiResponse
|
4
|
+
|
5
|
+
##
|
6
|
+
# Constructor
|
7
|
+
# @param signature (string) Expected response signature
|
8
|
+
# @param headers (list) Response HTTP headers
|
9
|
+
# @param body (string) Raw response data
|
10
|
+
def initialize(signature, headers, body)
|
11
|
+
@_signature = signature
|
12
|
+
@_headers = headers
|
13
|
+
@_body = body
|
14
|
+
end
|
15
|
+
|
16
|
+
##
|
17
|
+
# Internal method checking the response
|
18
|
+
# @throws ApiFalseResponseSignature If the expected signature is not found among response headers
|
19
|
+
def _verify
|
20
|
+
unless (@_headers['x-allopass-response-signature'] || []).include?(@_signature)
|
21
|
+
raise Allorails::ApiFalseResponseSignatureError
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -6,7 +6,7 @@ module Allorails
|
|
6
6
|
class Base < Allorails::Response::ApiMappingResponse
|
7
7
|
|
8
8
|
def initialize(node)
|
9
|
-
@
|
9
|
+
@xml = node
|
10
10
|
end
|
11
11
|
|
12
12
|
end
|
@@ -17,25 +17,25 @@ module Allorails
|
|
17
17
|
|
18
18
|
## Provides the website id
|
19
19
|
# @return (int) website id
|
20
|
-
|
20
|
+
attribute_reader :id, Integer
|
21
21
|
|
22
22
|
## Provides the website name
|
23
23
|
# @return (string) website name
|
24
|
-
|
24
|
+
attribute_reader :name
|
25
25
|
|
26
26
|
## Provides the website url
|
27
27
|
# @return (string) website url
|
28
|
-
|
28
|
+
attribute_reader :url
|
29
29
|
|
30
30
|
## Checks wether the website's audience is restricted
|
31
31
|
# @return (boolean) wether the website's audience is restricted
|
32
32
|
def audience_restricted?
|
33
|
-
|
33
|
+
xml.attribute('audience_restricted') == 'true'
|
34
34
|
end
|
35
35
|
|
36
36
|
## Provides the website category
|
37
37
|
# @return (string) website category
|
38
|
-
|
38
|
+
attribute_reader :category
|
39
39
|
|
40
40
|
end
|
41
41
|
|
@@ -45,11 +45,11 @@ module Allorails
|
|
45
45
|
|
46
46
|
## Provides the country code
|
47
47
|
# @return (string) country code (two characters)
|
48
|
-
|
48
|
+
attribute_reader :code
|
49
49
|
|
50
50
|
## Provides the country name
|
51
51
|
# @return (string) country name
|
52
|
-
|
52
|
+
attribute_reader :name
|
53
53
|
|
54
54
|
end
|
55
55
|
|
@@ -59,12 +59,12 @@ module Allorails
|
|
59
59
|
|
60
60
|
## Provides the region name
|
61
61
|
# @return (string) region name
|
62
|
-
|
62
|
+
attribute_reader :name
|
63
63
|
|
64
64
|
## Provides the countries in the region
|
65
65
|
# @return (Array) region's countries
|
66
66
|
def countries
|
67
|
-
|
67
|
+
xml.css('country').map{|c| Allorails::Country.new(c)}
|
68
68
|
end
|
69
69
|
|
70
70
|
end
|
@@ -75,16 +75,16 @@ module Allorails
|
|
75
75
|
|
76
76
|
## Provides the country code
|
77
77
|
# @return (string) country code (two characters)
|
78
|
-
|
78
|
+
attribute_reader :country_code
|
79
79
|
|
80
80
|
## Provides the country name
|
81
81
|
# @return (string) country name
|
82
|
-
|
82
|
+
attribute_reader :country
|
83
83
|
|
84
84
|
## Provides the pricepoints available in this market
|
85
85
|
# @return (Array) available pricepoints (list of Pricepoint objects)
|
86
86
|
def pricepoints
|
87
|
-
|
87
|
+
xml.css('pricepoint').map{|c| Allorails::Pricepoint.new(c)}
|
88
88
|
end
|
89
89
|
|
90
90
|
end
|
@@ -95,23 +95,23 @@ module Allorails
|
|
95
95
|
|
96
96
|
## Provides the currency
|
97
97
|
# @return (string) currency (three characters)
|
98
|
-
|
98
|
+
attribute_reader :currency
|
99
99
|
|
100
100
|
## Provides the amount
|
101
101
|
# @return (float) amount
|
102
|
-
|
102
|
+
attribute_reader :amount, Float
|
103
103
|
|
104
104
|
## Provides the day's exchange rate
|
105
105
|
# @return (float) exchange rate
|
106
|
-
|
106
|
+
attribute_reader :exchange, Float
|
107
107
|
|
108
108
|
## Provides the reference currency
|
109
109
|
# @return (string) reference currency
|
110
|
-
|
110
|
+
attribute_reader :reference_currency
|
111
111
|
|
112
112
|
## Provides the amount in the reference currency
|
113
113
|
# @return (float) reference amount
|
114
|
-
|
114
|
+
attribute_reader :reference_amount, Float
|
115
115
|
|
116
116
|
end
|
117
117
|
|
@@ -120,23 +120,23 @@ module Allorails
|
|
120
120
|
|
121
121
|
## Provides the currency
|
122
122
|
# @return (string) currency (three characters)
|
123
|
-
|
123
|
+
attribute_reader :currency
|
124
124
|
|
125
125
|
## Provides the amount
|
126
126
|
# @return (float) amount
|
127
|
-
|
127
|
+
attribute_reader :amount, Float
|
128
128
|
|
129
129
|
## Provides the day's exchange rate
|
130
130
|
# @return (float) exchange rate
|
131
|
-
|
131
|
+
attribute_reader :exchange, Float
|
132
132
|
|
133
133
|
## Provides the reference currency
|
134
134
|
# @return (string) reference currency
|
135
|
-
|
135
|
+
attribute_reader :reference_currency
|
136
136
|
|
137
137
|
## Provides the amount in the reference currency
|
138
138
|
# @return (float) reference amount
|
139
|
-
|
139
|
+
attribute_reader :reference_amount, Float
|
140
140
|
|
141
141
|
end
|
142
142
|
|
@@ -146,7 +146,7 @@ module Allorails
|
|
146
146
|
|
147
147
|
## Provides the phone number
|
148
148
|
# @return (string) phone number
|
149
|
-
|
149
|
+
attribute_reader :value
|
150
150
|
|
151
151
|
## Provides the description of the phone number
|
152
152
|
# @return (string) description
|
@@ -160,23 +160,23 @@ module Allorails
|
|
160
160
|
|
161
161
|
## Provides the keyword name
|
162
162
|
# @return (string) keyword name
|
163
|
-
|
163
|
+
attribute_reader :name
|
164
164
|
|
165
165
|
## Provides the keyword's shortcode
|
166
166
|
# @return (string) shortcode
|
167
|
-
|
167
|
+
attribute_reader :shortcode
|
168
168
|
|
169
169
|
## Provides the keyword operators
|
170
170
|
# @return (string) keyword operators
|
171
|
-
|
171
|
+
attribute_reader :operators
|
172
172
|
|
173
173
|
## Provides the number of billed messages of the keyword
|
174
174
|
# @return (int) number of billed messages
|
175
|
-
|
175
|
+
attribute_reader :number_billed_messages, Integer
|
176
176
|
|
177
177
|
## Provides a description of the keyword
|
178
178
|
# @return (string) description
|
179
|
-
|
179
|
+
attribute_reader :description
|
180
180
|
|
181
181
|
end
|
182
182
|
|
@@ -186,23 +186,23 @@ module Allorails
|
|
186
186
|
|
187
187
|
## Provides the pricepoint's id
|
188
188
|
# @return (int) pricepoint id
|
189
|
-
|
189
|
+
attribute_reader :id, Integer
|
190
190
|
|
191
191
|
## Provides the pricepoint's type
|
192
192
|
# @return (string) pricepoint type
|
193
|
-
|
193
|
+
attribute_reader :type
|
194
194
|
|
195
195
|
## Provides the pricepoint's country code
|
196
196
|
# @return (string) country code (two characters)
|
197
|
-
|
197
|
+
attribute_reader :country_code
|
198
198
|
|
199
199
|
## Provides price information
|
200
200
|
# @return (Price) price information
|
201
|
-
node_reader :price,
|
201
|
+
node_reader :price, Allorails::Price
|
202
202
|
|
203
203
|
## Provides the pricepoint's payout
|
204
204
|
# @return (Payout) pricepoint's payout
|
205
|
-
node_reader :payout,
|
205
|
+
node_reader :payout, Allorails::Payout
|
206
206
|
|
207
207
|
## Provides the buy url
|
208
208
|
# @return (string) buy url
|
@@ -211,15 +211,13 @@ module Allorails
|
|
211
211
|
## Provides the pricepoint's phone numbers
|
212
212
|
# @return (list) pricepoint's phone number (list of PhoneNumber objects)
|
213
213
|
def phone_numbers
|
214
|
-
|
215
|
-
json.phone_numbers.children.values.map{|c| ::Allorails::PhoneNumber(c)}
|
214
|
+
xml.css('phone_number').map{|c| Allorails::PhoneNumber.new(c)}
|
216
215
|
end
|
217
216
|
|
218
217
|
## Provides the pricepoint's keywords
|
219
218
|
# @return (list) pricepoint's keywords (list of Keyword objects)
|
220
219
|
def keywords
|
221
|
-
|
222
|
-
json.keywords.children.values.map{|c| ::Allorails::Keyword(c)}
|
220
|
+
xml.css('keyword').map{|c| Allorails::Keyword.new(c)}
|
223
221
|
end
|
224
222
|
|
225
223
|
## Provides the pricepoint's description
|
@@ -234,17 +232,18 @@ module Allorails
|
|
234
232
|
|
235
233
|
## Provides the partner id
|
236
234
|
# @return (int) partner id
|
237
|
-
|
235
|
+
attribute_reader :id, Integer
|
238
236
|
|
239
237
|
## Provides the parnter's amount share
|
240
238
|
# @return (float) parnter's amount share
|
241
|
-
|
239
|
+
attribute_reader :share, Float
|
242
240
|
|
243
241
|
## Provides the associated map id
|
244
242
|
# @return (int) map id
|
245
243
|
def map
|
246
|
-
|
247
|
-
|
244
|
+
if (map = xml.attribute('map')) && map.text.length > 0
|
245
|
+
return map.to_i
|
246
|
+
end
|
248
247
|
end
|
249
248
|
|
250
249
|
end
|
@@ -259,19 +258,19 @@ module Allorails
|
|
259
258
|
|
260
259
|
## Provides the pricepoint's description
|
261
260
|
# @return (string) pricepoint's description
|
262
|
-
node_reader :pricepoint,
|
261
|
+
node_reader :pricepoint, Allorails::Pricepoint
|
263
262
|
|
264
263
|
## Provides price information
|
265
264
|
# @return (Price) price information
|
266
|
-
node_reader :price,
|
265
|
+
node_reader :price, Allorails::Price
|
267
266
|
|
268
267
|
## Provides paid price information
|
269
268
|
# @return (Price) paid price information
|
270
|
-
node_reader :paid,
|
269
|
+
node_reader :paid, Allorails::Price
|
271
270
|
|
272
271
|
## Provides the pricepoint's payout
|
273
272
|
# @return (Payout) pricepoint's payout
|
274
|
-
node_reader :payout,
|
273
|
+
node_reader :payout, Allorails::Payout
|
275
274
|
|
276
275
|
end
|
277
276
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
## Class defining a onetime button request's response
|
2
|
+
class Allorails::Response::OnetimeButtonResponse < Allorails::Response::ApiMappingResponse
|
3
|
+
|
4
|
+
## Provides access type
|
5
|
+
# @return (string) access type
|
6
|
+
node_reader :access_type
|
7
|
+
|
8
|
+
## Provides the button id
|
9
|
+
# @return (string) button id
|
10
|
+
node_reader :button_id
|
11
|
+
|
12
|
+
## Provides the creation date
|
13
|
+
# @return (datetime.datetime) Creation date
|
14
|
+
node_reader :creation_date, DateTime
|
15
|
+
|
16
|
+
## Provides the website
|
17
|
+
# @return (Website) website
|
18
|
+
node_reader :website, Allorails::Website
|
19
|
+
|
20
|
+
## Provides the buy url
|
21
|
+
# @return (string) buy url
|
22
|
+
node_reader :buy_url
|
23
|
+
|
24
|
+
## Provides the checkout button
|
25
|
+
# @return (string) checkout button (html code)
|
26
|
+
node_reader :checkout_button
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class Allorails::Response::OnetimePricingResponse < Allorails::Response::ApiMappingResponse
|
2
|
+
|
3
|
+
## Provides the creation date
|
4
|
+
# @return (DateTime) Creation date
|
5
|
+
node_reader :creation_date, DateTime
|
6
|
+
|
7
|
+
## Provides the customer ip
|
8
|
+
# @return (string) customer ip
|
9
|
+
node_reader :customer_ip
|
10
|
+
|
11
|
+
## Provides the customer country
|
12
|
+
# @return (string) customer country
|
13
|
+
node_reader :customer_country
|
14
|
+
|
15
|
+
## Provides the website
|
16
|
+
# @return (Website) website
|
17
|
+
node_reader :website, Allorails::Website
|
18
|
+
|
19
|
+
## Provides the pricepoints by countries
|
20
|
+
# @return (Array) available countries (list of Country object)
|
21
|
+
def countries
|
22
|
+
xml.css('countries country').map{|c| Allorails::Country.new(c)}
|
23
|
+
end
|
24
|
+
|
25
|
+
## Provides the pricepoints by region
|
26
|
+
# @return (Array) available regions (list of Regions object)
|
27
|
+
def regions
|
28
|
+
xml.css('countries region').map{|r| ::Allorails::Region.new(r)}
|
29
|
+
end
|
30
|
+
|
31
|
+
## Provides the pricepoints by markets
|
32
|
+
# @return (list) available markets (list of Market object)
|
33
|
+
def markets
|
34
|
+
xml.css('markets market').map{|m| Allorails::Market.new(m)}
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|