vcx-elements 0.2.0 → 0.2.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/gem-create.gemspec +1 -1
- data/lib/elements.rb +59 -5
- metadata +2 -2
data/gem-create.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.unshift 'lib'
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
5
|
s.name = "vcx-elements"
|
6
|
-
s.version = "0.2.
|
6
|
+
s.version = "0.2.1"
|
7
7
|
s.date = Time.now.strftime('%Y-%m-%d')
|
8
8
|
s.homepage = "https://github.com/livegamervcxdevteam/elementsapi.git"
|
9
9
|
s.authors = ["livegamer"]
|
data/lib/elements.rb
CHANGED
@@ -104,6 +104,27 @@ module Elements
|
|
104
104
|
post_data("forexOffer", params)
|
105
105
|
end
|
106
106
|
|
107
|
+
#def self.create_cashin_po(order, ipaddress='1.1.1.1')
|
108
|
+
#class << order
|
109
|
+
#attr_accessor :cashin_forex_elements_id, :cashin_config_id
|
110
|
+
#end
|
111
|
+
|
112
|
+
#Configurable Elements Ids
|
113
|
+
#order.cashin_forex_elements_id = '1850'
|
114
|
+
#order.cashin_config_id = '1347'
|
115
|
+
|
116
|
+
#lineItem, payment = cashin_purchase_info(order, ipaddress)
|
117
|
+
|
118
|
+
#params = {
|
119
|
+
#orderCommand: 'AUTHORIZE',
|
120
|
+
#buyerUser: {'@id' => order.user.elements_id},
|
121
|
+
#lineItems: lineItem,
|
122
|
+
#payment: payment
|
123
|
+
#}
|
124
|
+
#rs = XmlSimple.xml_in post_xml_data("purchaseOrder", params,"purchaseOrder")
|
125
|
+
#rs['id']
|
126
|
+
#end
|
127
|
+
|
107
128
|
#Create purchase order is a class method that creates a new purchaseOrder in the elements system depending on the order type
|
108
129
|
def self.create_purchase_order( order, ipaddress='1.1.1.1' )
|
109
130
|
lineItems, payment = send("#{order.order_type}_purchase_info", order, ipaddress)
|
@@ -112,7 +133,7 @@ module Elements
|
|
112
133
|
|
113
134
|
lineItems.each_with_index do |lineItem, index|
|
114
135
|
params = {
|
115
|
-
orderCommand: 'AUTHORIZE',
|
136
|
+
orderCommand: order.order_type=='cashin' ? 'CHARGE' : 'AUTHORIZE',
|
116
137
|
buyerUser: {'@id' => order.user.elements_id},
|
117
138
|
lineItems: lineItem,
|
118
139
|
payment: payment[index]
|
@@ -134,6 +155,7 @@ module Elements
|
|
134
155
|
elements_ids.each do |elements_id|
|
135
156
|
XmlSimple.xml_in post_xml_data("purchaseOrder/#{elements_id}/command", params,"purchaseOrderCommand")
|
136
157
|
end
|
158
|
+
|
137
159
|
end
|
138
160
|
|
139
161
|
#Cancel Purchase Order is a class method that cancels an order that has already been created
|
@@ -157,6 +179,34 @@ module Elements
|
|
157
179
|
sell_purchase_info(order, ipaddress)
|
158
180
|
end
|
159
181
|
|
182
|
+
#Sell Purchase Info is a class method that returns the sell line items and payment information for the order
|
183
|
+
def self.cashin_purchase_info(order, ipaddress)
|
184
|
+
#Configurable Elements Ids
|
185
|
+
cashin_forex_elements_id = '1850'
|
186
|
+
cashin_config_id = '1347'
|
187
|
+
|
188
|
+
line_items = [{ 'forexOffer' => { 'forexOfferRequest' => { '@amountFromCurrency' => order.total_due.abs, '@id' => cashin_forex_elements_id} } }]
|
189
|
+
|
190
|
+
payment_profile = order.payment_profile
|
191
|
+
payment = [{
|
192
|
+
'@configId' => cashin_config_id,
|
193
|
+
'creditCard' => {
|
194
|
+
'billToStreetAddress' => payment_profile.billing_address1 + payment_profile.billing_address2,
|
195
|
+
'billToZipCode' => payment_profile.zipcode,
|
196
|
+
'creditCardNumber' => payment_profile.account_number,
|
197
|
+
'creditCardType' => payment_profile.account_type,
|
198
|
+
'expDate' => payment_profile.expiration_date, #To be fixed
|
199
|
+
'securityCode' => payment_profile.ccv,
|
200
|
+
'firstname' => payment_profile.name.split[0],
|
201
|
+
'surname' => payment_profile.name.split[1],
|
202
|
+
'stateProvince' => payment_profile.state,
|
203
|
+
'countryCode' => 'US' #To be fixed
|
204
|
+
}
|
205
|
+
}]
|
206
|
+
|
207
|
+
return line_items, payment
|
208
|
+
end
|
209
|
+
|
160
210
|
#Sell Purchase Info is a class method that returns the sell line items and payment information for the order
|
161
211
|
def self.sell_purchase_info(order, ipaddress)
|
162
212
|
line_items = Array.new
|
@@ -201,20 +251,24 @@ module Elements
|
|
201
251
|
def self.fetch_order_elements(order)
|
202
252
|
elements_id = order.elements_id
|
203
253
|
case order.order_type
|
204
|
-
when
|
205
|
-
[
|
254
|
+
when 'cashin'
|
255
|
+
[order.cashin_elements_id]
|
206
256
|
when 'exchange'
|
207
257
|
order.elements_id.split('|')
|
258
|
+
when /['sell'|'buy']/
|
259
|
+
[elements_id]
|
208
260
|
end
|
209
261
|
end
|
210
262
|
|
211
263
|
#Save Order Elements is a class method that saves the elements_id from order table depending on the order type
|
212
264
|
def self.save_order_elements(elements_ids, order)
|
213
265
|
case order.order_type
|
214
|
-
when
|
215
|
-
order.update_column '
|
266
|
+
when 'cashin'
|
267
|
+
order.update_column 'cashin_elements_id', elements_ids.first
|
216
268
|
when 'exchange'
|
217
269
|
order.update_column 'elements_id', elements_ids.join('|')
|
270
|
+
when /['sell'|'buy']/
|
271
|
+
order.update_column 'elements_id', elements_ids.first
|
218
272
|
end
|
219
273
|
end
|
220
274
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vcx-elements
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-09-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|