safecharge 0.1.3 → 0.1.4
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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/safecharge/request.rb +26 -27
- data/lib/safecharge/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 803b939f2a7601288a6bee3f4ceaefd4446ea5c9
|
4
|
+
data.tar.gz: dbdba6a50bbe8a55547fef373a5f648d8de3f7dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29a20198c0e45c1782c910fd5df59f63375c808d1fd6f386fcaa7e7231c573f4a8e8edf92f3b5fa09a05ca164eaf538f96bd7c5345c518f913ac37df371aa30f
|
7
|
+
data.tar.gz: 5995a85b6ed331383de67280b9007d115f2a2c019f715f6787588991140bb978b7037805b156644bd8da49d9409c6c237029f92b4e1fdbb6577ea0b518f8866f
|
data/README.md
CHANGED
data/lib/safecharge/request.rb
CHANGED
@@ -63,32 +63,47 @@ module Safecharge
|
|
63
63
|
'encoding' => Safecharge::Constants::DEFAULT_ENCODING
|
64
64
|
}
|
65
65
|
|
66
|
-
def initialize(
|
67
|
-
raise ArgumentError, "missing url" if
|
68
|
-
if
|
66
|
+
def initialize(a_url, some_params = {})
|
67
|
+
raise ArgumentError, "missing url" if a_url == nil || a_url.empty?
|
68
|
+
if a_url === Safecharge::Constants::SERVER_TEST
|
69
69
|
self.mode = 'test'
|
70
|
-
elsif
|
70
|
+
elsif a_url === Safecharge::Constants::SERVER_LIVE
|
71
71
|
self.mode = 'live'
|
72
72
|
else
|
73
|
-
raise ArgumentError, "invalid url #{
|
73
|
+
raise ArgumentError, "invalid url #{a_url}"
|
74
74
|
end
|
75
|
-
self.url =
|
76
|
-
self.full_url =
|
77
|
-
core_params, items, extracted_items = self.extract_items(convert_symbols_to_strings(
|
75
|
+
self.url = a_url
|
76
|
+
self.full_url = a_url
|
77
|
+
core_params, items, extracted_items = self.extract_items(convert_symbols_to_strings(some_params))
|
78
78
|
raise ValidationException, "Missing array of Items." if items == nil || items.empty?
|
79
79
|
self.items = items
|
80
80
|
self.params = DEFAULT_PARAMS.merge(core_params)
|
81
81
|
self.validate_parameters(self.params)
|
82
82
|
items.each {|i| self.validate_parameters(i, self.class::ALLOWED_ITEM_FIELDS)}
|
83
83
|
self.params.merge!(extracted_items)
|
84
|
-
self.params.merge!({'numberofitems' => items.size,
|
85
|
-
|
86
|
-
'checksum' => calculate_checksum})
|
84
|
+
self.params.merge!({'numberofitems' => items.size, 'time_stamp' => Time.now.utc.strftime("%Y-%m-%d.%H:%M:%S")})
|
85
|
+
self.params.merge!({'checksum' => calculate_checksum}) # must happen after the previous merge!
|
87
86
|
self.construct_url
|
88
87
|
end
|
89
88
|
|
90
89
|
protected
|
91
90
|
|
91
|
+
def convert_symbols_to_strings(a_hash = {})
|
92
|
+
raise ArgumentError, "Expected a Hash" unless a_hash.is_a?(Hash)
|
93
|
+
return {} if a_hash.empty?
|
94
|
+
result = {}
|
95
|
+
a_hash.each do |key, value|
|
96
|
+
if value.is_a?(Array)
|
97
|
+
result[key.to_s] = value.map { |av| av.is_a?(Hash) ? convert_symbols_to_strings(av) : av }
|
98
|
+
elsif value.is_a?(Hash)
|
99
|
+
result[key.to_s] = convert_symbols_to_strings(value)
|
100
|
+
else
|
101
|
+
result[key.to_s] = value
|
102
|
+
end
|
103
|
+
end
|
104
|
+
return result
|
105
|
+
end
|
106
|
+
|
92
107
|
def extract_items(params)
|
93
108
|
items = params.delete('items')
|
94
109
|
return params, nil, nil if items.nil?
|
@@ -174,22 +189,6 @@ module Safecharge
|
|
174
189
|
return uri
|
175
190
|
end
|
176
191
|
|
177
|
-
def convert_symbols_to_strings(a_hash = {})
|
178
|
-
return {} if a_hash.empty?
|
179
|
-
result = {}
|
180
|
-
a_hash.each do |key, value|
|
181
|
-
val = value
|
182
|
-
if value.is_a?(Hash)
|
183
|
-
val = convert_symbols_to_strings(value)
|
184
|
-
elsif value.is_a?(Array)
|
185
|
-
val = value.map { |va| va.is_a?(Hash) ? convert_symbols_to_strings(va) : va }
|
186
|
-
end
|
187
|
-
result[key] = val if key.is_a?(String)
|
188
|
-
result[key.to_s] = val if key.is_a?(Symbol)
|
189
|
-
end
|
190
|
-
return result
|
191
|
-
end
|
192
|
-
|
193
192
|
# def calculate_item_total
|
194
193
|
# # item_amount_N - item_discount_N + item_shipping_N + item_handling_N) * item_quantity_N
|
195
194
|
# return 0.0 if self.items == nil || self.items.empty?
|
data/lib/safecharge/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: safecharge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dave Sag
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|