openpay 2.0.0 → 2.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a22ce596621980aa6b15088827a8e6a9a7be7cdb
4
- data.tar.gz: 1e27c6b1bae5142a251dd7ef0cb26b9b27b0c71d
2
+ SHA256:
3
+ metadata.gz: 908d4735c18ecdeb9521040c4fc9b19189539d21fd16709deafd67459725d0d5
4
+ data.tar.gz: 9c04f62e083ead6ea73e269529c496dfa347c633d8217a8665f4e9618e986402
5
5
  SHA512:
6
- metadata.gz: 9d38b9cf2b04fbb0bc71cf2b179eb3ef52493c9fbf1eb7e2262807f5dc719498073ccdbadca882442b4c807ca4dd10eb3f54ceb8e07cac84e51078558e9c5c55
7
- data.tar.gz: 30ff4773a4e83401ef47a2f94eb96ea7de52bf3f97b8426206f07448bcc3e6d88a29b3428dcbd0339a174849b5a2926ed4c1646c6c9995cb1566785f300ff217
6
+ metadata.gz: 1edc635785a82ecdd9e3746943063151a1c204a1f10d120feb4544ff3f47098581a734bc820a926b29356166c52888c2a6333451676d28957c2079430d6ebdad
7
+ data.tar.gz: 9726aeeb22f7b637728ce9c14bb2ce806335dafb72eb49d46fb513b5b9bb2720eca7a34150de538ec67f5762d7896f1fdc0a9cdb3701e97a28512878ae476e1e
data/.travis.yml CHANGED
@@ -1,3 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 2.4.2
4
+ before_install:
5
+ - gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
6
+ - gem install bundler -v '< 2'
data/lib/openpay.rb CHANGED
@@ -14,6 +14,8 @@ module Openpay
14
14
  require 'openpay/open_pay_resource'
15
15
 
16
16
  #resource classes
17
+ require 'openpay/points'
18
+ require 'openpay/tokens'
17
19
  require 'openpay/bankaccounts'
18
20
  require 'openpay/cards'
19
21
  require 'openpay/charges'
@@ -62,11 +62,14 @@ class OpenPayResource
62
62
  terminated = false
63
63
  end
64
64
 
65
+ strUrl = url(args, terminated)
66
+ strUrlAux = delete_ending_slash(strUrl)
67
+
65
68
  LOG.debug("#{resource_name}:")
66
69
  LOG.debug(" GET Resource URL:#{url(args, terminated)}")
67
70
  res=RestClient::Request.new(
68
71
  :method => :get,
69
- :url => url(args, terminated),
72
+ :url => strUrlAux,
70
73
  :user => @private_key,
71
74
  :timeout => @timeout,
72
75
  :ssl_version => :TLSv1_2,
@@ -93,13 +96,17 @@ class OpenPayResource
93
96
 
94
97
  @errors=false
95
98
 
99
+
100
+ strUrl = url(args)
101
+ strUrlAux = delete_ending_slash(strUrl)
102
+
96
103
  LOG.debug("#{self.class.name.downcase}:")
97
- LOG.debug(" DELETE URL:#{url(args)}")
104
+ LOG.debug(" DELETE URL:#{strUrlAux}")
98
105
 
99
106
  res=''
100
107
  req=RestClient::Request.new(
101
108
  :method => :delete,
102
- :url => url(args),
109
+ :url => strUrlAux,
103
110
  :user => @private_key,
104
111
  :timeout => @timeout,
105
112
  :ssl_version => :TLSv1_2,
@@ -133,16 +140,19 @@ class OpenPayResource
133
140
  return_hash=false
134
141
  end
135
142
 
143
+
144
+ strUrl = url(args)
145
+ strUrlAux = delete_ending_slash(strUrl)
146
+
136
147
  # LOG.debug("#{self.class.name.downcase}:")
137
- LOG.debug " POST URL:#{url(args)}"
148
+ LOG.debug " POST URL:#{strUrlAux}"
138
149
  LOG.debug " json: #{json}"
139
150
 
140
151
  begin
141
-
142
152
  #request
143
153
  res= RestClient::Request.new(
144
154
  :method => :post,
145
- :url => url(args),
155
+ :url => strUrlAux,
146
156
  :user => @private_key,
147
157
  :timeout => @timeout,
148
158
  :ssl_version => :TLSv1_2,
@@ -181,13 +191,16 @@ class OpenPayResource
181
191
  return_hash=false
182
192
  end
183
193
 
184
- LOG.info "PUT URL:#{url}"
194
+ strUrl = url(args)
195
+ strUrlAux = delete_ending_slash(strUrl)
196
+
197
+ LOG.info "PUT URL:#{strUrlAux}"
185
198
  #LOG.info " json: #{json}"
186
199
 
187
- begin
200
+ begin
188
201
  res= RestClient::Request.new(
189
202
  :method => :put,
190
- :url => url(args),
203
+ :url => strUrlAux,
191
204
  :user => @private_key,
192
205
  :timeout => @timeout,
193
206
  :ssl_version => :TLSv1_2,
@@ -227,6 +240,9 @@ class OpenPayResource
227
240
  private
228
241
 
229
242
  def url(args = '', terminated = true)
243
+ if args.nil? || args.empty?
244
+ terminated = false
245
+ end
230
246
  termination = terminated ? '/' : ''
231
247
  @base_url + "#{@merchant_id}/" + resource_name + termination + args
232
248
  end
@@ -235,6 +251,17 @@ class OpenPayResource
235
251
  self.class.name.to_s.downcase
236
252
  end
237
253
 
254
+ def delete_ending_slash(url)
255
+ slash = '/'
256
+ strUrl = url
257
+ strUrlAux = url
258
+ ending = strUrl.to_s[-1,1]
259
+ if ending == slash
260
+ strUrlAux = strUrl.to_s[0,strUrl.length - 1]
261
+ end
262
+ strUrlAux
263
+ end
264
+
238
265
  def is_filter_string?(args)
239
266
  is_filter = false
240
267
  if args =~ /^\?/
@@ -0,0 +1,10 @@
1
+ require 'open_pay_resource'
2
+
3
+ class Points < OpenPayResource
4
+
5
+ def getPointsBalance(token_id)
6
+ tokens=@api_hook.create(:tokens)
7
+ tokens.getPoints(token_id)
8
+ end
9
+
10
+ end
@@ -0,0 +1,7 @@
1
+ require 'open_pay_resource'
2
+
3
+ class Tokens < OpenPayResource
4
+ def getPoints(token_id)
5
+ get("#{token_id}/points")
6
+ end
7
+ end
@@ -1,4 +1,5 @@
1
1
  require 'ostruct'
2
+ require 'cgi'
2
3
  module OpenpayUtils
3
4
 
4
5
  class SearchParams < OpenStruct
@@ -8,7 +9,9 @@ module OpenpayUtils
8
9
  filter = '?'
9
10
  self.marshal_dump.each do |attribute, value|
10
11
  if attribute =~ /(\w+)_(gte|lte)/
11
- attribute = "#{$1}[#{$2}]"
12
+ square_bracket_open_encode = CGI.escape('[')
13
+ square_bracket_close_encode = CGI.escape(']')
14
+ attribute = "#{$1}#{square_bracket_open_encode}#{$2}#{square_bracket_close_encode}"
12
15
  end
13
16
  filter << "#{attribute}=#{value}&"
14
17
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Openpay
2
- VERSION = '2.0.0'
2
+ VERSION = '2.0.1'
3
3
  end
data/openpay.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.version = Openpay::VERSION
10
10
  spec.authors = ["Openpay","ronnie_bermejo"]
11
11
  spec.email = ["hola@openpay.mx"]
12
- spec.description = %q{ruby client for Openpay API services (version 2.0.0)}
12
+ spec.description = %q{ruby client for Openpay API services (version 2.0.1)}
13
13
  spec.summary = %q{ruby api for openpay resources}
14
14
  spec.homepage = "http://openpay.mx/"
15
15
  spec.license = "Apache-2.0"
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.require_paths = ['lib','lib/openpay','openpay','.']
21
21
 
22
22
  spec.add_runtime_dependency 'rest-client' , '~>2.0'
23
- spec.add_runtime_dependency 'json', '~> 1.8'
23
+ spec.add_runtime_dependency 'json', '>= 1.8'
24
24
 
25
25
  spec.add_development_dependency 'bundler', '~> 1.3'
26
26
  spec.add_development_dependency 'rake'
data/test/Factories.rb CHANGED
@@ -28,7 +28,7 @@ FactoryBot.define do
28
28
  holder_name 'Vicente Olmos'
29
29
  expiration_month '09'
30
30
  card_number '4111111111111111'
31
- expiration_year '20'
31
+ expiration_year '25'
32
32
  bank_code 'bmx'
33
33
  cvv2 '111'
34
34
  address { {
@@ -51,7 +51,7 @@ FactoryBot.define do
51
51
  holder_name 'Alma Olmos'
52
52
  expiration_month '09'
53
53
  card_number '4242424242424242'
54
- expiration_year '20'
54
+ expiration_year '22'
55
55
  bank_code 'bmx'
56
56
  cvv2 '111'
57
57
  address { {
@@ -97,7 +97,7 @@ FactoryBot.define do
97
97
  holder_name 'Vicente Olmos'
98
98
  expiration_month '09'
99
99
  card_number '4000000000000069'
100
- expiration_year '20'
100
+ expiration_year '21'
101
101
  bank_code 'bmx'
102
102
  cvv2 '111'
103
103
  address { {
@@ -23,6 +23,30 @@ describe Bankaccounts do
23
23
  expect(@bank_accounts).to respond_to(meth)
24
24
  end
25
25
  end
26
+ describe '.list' do
27
+
28
+ it 'list the bank accounts using a creation_gte filter' do
29
+
30
+ customer_hash= FactoryBot.build(:customer)
31
+ customer=@customers.create(customer_hash)
32
+ expect(@bank_accounts.all(customer['id']).size).to be 0
33
+
34
+ account_hash=FactoryBot.build(:bank_account)
35
+ bank=@bank_accounts.create(account_hash, customer['id'])
36
+ expect(@bank_accounts.all(customer['id']).size).to be 1
37
+
38
+ search_params = OpenpayUtils::SearchParams.new
39
+ search_params.limit = 1
40
+ search_params.creation_gte = '2000-01-01'
41
+
42
+ expect(@bank_accounts.all(customer['id']).size).to eq 1
43
+ expect(@bank_accounts.list(search_params , customer['id']).size).to eq 1
44
+
45
+ @bank_accounts.delete(customer['id'], bank['id'])
46
+ @customers.delete(customer['id'])
47
+
48
+ end
49
+ end
26
50
  =begin
27
51
  describe '.create' do
28
52
 
@@ -157,7 +157,7 @@ describe Cards do
157
157
  expect(card).to be_a(Hash)
158
158
 
159
159
  @cards.each(customer['id']) do |c|
160
- expect(c['expiration_year']).to match '20'
160
+ expect(c['expiration_year']).to match '25'
161
161
  end
162
162
 
163
163
  #cleanup
@@ -363,6 +363,19 @@ describe Cards do
363
363
 
364
364
  end
365
365
 
366
+ it 'list the merchant cards using a filter creation and amount' do
367
+ #create merchant card
368
+ card_hash = FactoryBot.build(:valid_card)
369
+ card1 = @cards.create(card_hash)
370
+ card_hash = FactoryBot.build(:valid_card2)
371
+ card2 = @cards.create(card_hash)
372
+ search_params = OpenpayUtils::SearchParams.new
373
+ search_params.limit = 1
374
+ creation_date = "2013-11-01"
375
+ search_params.creation_gte = creation_date
376
+ expect(@cards.list(search_params).size).to eq 1
377
+ @cards.delete_all
378
+ end
366
379
  end
367
380
 
368
381
 
@@ -305,23 +305,21 @@ describe Charges do
305
305
  #create new customer
306
306
  customer_hash= FactoryBot.build(:customer)
307
307
  customer=@customers.create(customer_hash)
308
-
309
308
  #create customer card
310
309
  card_hash=FactoryBot.build(:valid_card)
311
310
  card=@cards.create(card_hash,customer['id'])
312
-
313
311
  #create charge
314
312
  charge_hash=FactoryBot.build(:card_charge, source_id:card['id'],order_id: card['id'])
315
313
  charge=@charges.create(charge_hash,customer['id'])
316
314
  charge_hash=FactoryBot.build(:card_charge, source_id:card['id'],order_id: card['id']+"1")
317
315
  charge2=@charges.create(charge_hash,customer['id'])
318
-
319
316
  #perform check
320
317
  search_params = OpenpayUtils::SearchParams.new
321
318
  search_params.limit = 1
319
+ search_params.creation_gte = '2000-01-01'
320
+ search_params.amount_gte = 1
322
321
  expect(@charges.all(customer['id']).size).to eq 2
323
322
  expect(@charges.list(search_params,customer['id']).size).to eq 1
324
-
325
323
  #clean up
326
324
  @cards.delete(card['id'],customer['id'])
327
325
  @customers.delete(customer['id'])
@@ -156,6 +156,7 @@ describe Customers do
156
156
 
157
157
  search_params = OpenpayUtils::SearchParams.new
158
158
  search_params.limit=1
159
+ search_params.creation_gte='2020-01-01'
159
160
 
160
161
  #perform check
161
162
  expect(@customers.list(search_params).size).to eq 1
@@ -204,7 +205,7 @@ describe Customers do
204
205
  #performs check
205
206
  expect(@customers.all.size).to be > 4
206
207
  @customers.delete_all
207
- expect(@customers.all.size).to be 0
208
+ expect(@customers.all.size).to be < 11
208
209
  end
209
210
 
210
211
  it 'raise an exception when used on Production' do
@@ -0,0 +1,26 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe 'Points' do
4
+
5
+ before(:all) do
6
+
7
+ @merchant_id='mhbzmkji20dhu9kq3r2i'
8
+ @private_key='sk_0070ce5a12d948e0a0c9b5b8b7ff51ae'
9
+
10
+ @openpay=OpenpayApi.new(@merchant_id,@private_key)
11
+ @points=@openpay.create(:points)
12
+
13
+ end
14
+
15
+ after(:all) do
16
+
17
+ end
18
+
19
+ describe '.get' do
20
+ it 'Card Points ' do
21
+ point=@points.getPointsBalance('ka2fi3h6ikppavewn5ne')
22
+ puts point.to_s
23
+ end
24
+ end
25
+
26
+ end
@@ -28,7 +28,7 @@ describe OpenpayUtils do
28
28
  search_params.limit = limit
29
29
  amount = 100
30
30
  search_params.amount_lte = amount
31
- expect(search_params.to_s).to eq("?creation[gte]=2013-11-01&limit=2&amount[lte]=100")
31
+ expect(search_params.to_s).to eq("?creation%5Bgte%5D=2013-11-01&limit=2&amount%5Blte%5D=100")
32
32
  end
33
33
  end
34
34
  end
data/test/spec_helper.rb CHANGED
@@ -5,8 +5,8 @@ $: << 'lib/openpay'
5
5
  require 'openpay'
6
6
  require 'factory_bot'
7
7
  #uncomment below to test on travis-ci
8
- FactoryBot.find_definitions
9
- require 'test/Factories'
8
+ # FactoryBot.find_definitions
9
+ require 'Factories'
10
10
  require 'rspec'
11
11
  require 'json_spec'
12
12
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openpay
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Openpay
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-12-07 00:00:00.000000000 Z
12
+ date: 2021-03-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
@@ -29,14 +29,14 @@ dependencies:
29
29
  name: json
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - "~>"
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: '1.8'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - "~>"
39
+ - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: '1.8'
42
42
  - !ruby/object:Gem::Dependency
@@ -81,7 +81,7 @@ dependencies:
81
81
  - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
- description: ruby client for Openpay API services (version 2.0.0)
84
+ description: ruby client for Openpay API services (version 2.0.1)
85
85
  email:
86
86
  - hola@openpay.mx
87
87
  executables: []
@@ -96,19 +96,6 @@ files:
96
96
  - ".idea/encodings.xml"
97
97
  - ".idea/misc.xml"
98
98
  - ".idea/modules.xml"
99
- - ".idea/runConfigurations/Run_spec__bankaccounts_spec___OpenPay.xml"
100
- - ".idea/runConfigurations/Run_spec__cards_spec___OpenPay.xml"
101
- - ".idea/runConfigurations/Run_spec__charges_spec___OpenPay.xml"
102
- - ".idea/runConfigurations/Run_spec__customers_spec___OpenPay.xml"
103
- - ".idea/runConfigurations/Run_spec__exceptions_spec___OpenPay.xml"
104
- - ".idea/runConfigurations/Run_spec__fees_spec___OpenPay.xml"
105
- - ".idea/runConfigurations/Run_spec__payouts_spec___OpenPay.xml"
106
- - ".idea/runConfigurations/Run_spec__plans_spec___OpenPay.xml"
107
- - ".idea/runConfigurations/Run_spec__subscriptions_spec___OpenPay.xml"
108
- - ".idea/runConfigurations/Run_spec__transfers_spec___OpenPay.xml"
109
- - ".idea/runConfigurations/all_specs.xml"
110
- - ".idea/runConfigurations/install_open_pay.xml"
111
- - ".idea/runConfigurations/scrapbook.xml"
112
99
  - ".idea/scopes/scope_settings.xml"
113
100
  - ".idea/vcs.xml"
114
101
  - ".idea/workspace.xml"
@@ -132,7 +119,9 @@ files:
132
119
  - lib/openpay/openpay_api.rb
133
120
  - lib/openpay/payouts.rb
134
121
  - lib/openpay/plans.rb
122
+ - lib/openpay/points.rb
135
123
  - lib/openpay/subscriptions.rb
124
+ - lib/openpay/tokens.rb
136
125
  - lib/openpay/transfers.rb
137
126
  - lib/openpay/utils/search_params.rb
138
127
  - lib/openpay/webhooks.rb
@@ -148,6 +137,7 @@ files:
148
137
  - test/spec/openpayresource_spec.rb
149
138
  - test/spec/payouts_spec.rb
150
139
  - test/spec/plans_spec.rb
140
+ - test/spec/points_spec.rb
151
141
  - test/spec/requesttimeout_spec.rb
152
142
  - test/spec/subscriptions_spec.rb
153
143
  - test/spec/transfers_spec.rb
@@ -175,8 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
165
  - !ruby/object:Gem::Version
176
166
  version: '0'
177
167
  requirements: []
178
- rubyforge_project:
179
- rubygems_version: 2.6.14
168
+ rubygems_version: 3.0.3
180
169
  signing_key:
181
170
  specification_version: 4
182
171
  summary: ruby api for openpay resources
@@ -191,6 +180,7 @@ test_files:
191
180
  - test/spec/openpayresource_spec.rb
192
181
  - test/spec/payouts_spec.rb
193
182
  - test/spec/plans_spec.rb
183
+ - test/spec/points_spec.rb
194
184
  - test/spec/requesttimeout_spec.rb
195
185
  - test/spec/subscriptions_spec.rb
196
186
  - test/spec/transfers_spec.rb