paymentrails 0.2.0 → 0.2.2

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
2
  SHA256:
3
- metadata.gz: 4baf68c202c58008adf60a8ff50d5779d188f53858d622b16c64affc145dfd29
4
- data.tar.gz: 69662b23f889833d6517dd5154aec6b0be48022b07a2fcba8b24f9bd3faa749a
3
+ metadata.gz: c675152b7b6253f43974fe54ef75f61040576e37b8eb8d18a31e0bdcd3648b31
4
+ data.tar.gz: ffed38b9237d86b3d902950fd27f520d1ebdb7854fc605844e5167933082618c
5
5
  SHA512:
6
- metadata.gz: c1ab530137667572959a151a4e2364dd55bcdbbdbe8d580ea50403ca3abf7a318081409ebbb5d966c070a86641c43187c991e9149a11d7b50d541a6b43ae4fb1
7
- data.tar.gz: db934880345ba92aee92ac8b3cee97d06e0affe62b9fac5206e63dd741b89de48ccc051e5d2a4477c748372df9dbae44b4288ee1bc74734742916120fd47dafd
6
+ metadata.gz: 7946d78778cd54ff5952d939adf9ab8b37b0d1449801a34c45ee09c7f121ff72b0ca1db3cf2b0429aca93ad57dfc34391289f768b4dc3b8732aedb6ed7283a4e
7
+ data.tar.gz: 85347efba19d8342f71d71fe3dce890c64505b965c640aed7b4207ae112d578324291c52674bfea845475d150d7a448283e22bba8bd666b3472654be6976f2ef
@@ -6,6 +6,7 @@ require 'paymentrails/gateways/BatchGateway'
6
6
  require 'paymentrails/gateways/PaymentGateway'
7
7
  require 'paymentrails/gateways/RecipientGateway'
8
8
  require 'paymentrails/gateways/RecipientAccountGateway'
9
+ require 'paymentrails/gateways/OfflinePaymentGateway'
9
10
 
10
11
  require 'paymentrails/Balance'
11
12
  require 'paymentrails/Batch'
@@ -14,6 +15,7 @@ require 'paymentrails/Exceptions'
14
15
  require 'paymentrails/Payment'
15
16
  require 'paymentrails/Recipient'
16
17
  require 'paymentrails/RecipientAccount'
18
+ require 'paymentrails/OfflinePayment'
17
19
 
18
20
  module PaymentRails
19
21
  def self.client(key, secret, environment = 'production')
@@ -35,12 +35,7 @@ module PaymentRails
35
35
  def send_request(endPoint, method, body = '')
36
36
  uri = URI.parse(@config.apiBase + endPoint)
37
37
  http = Net::HTTP.new(uri.host, uri.port)
38
-
39
- # for ssl use
40
- if (@config.apiBase["https"])
41
- http.use_ssl = true
42
- http.verify_mode = OpenSSL::SSL::VERIFY_NONE
43
- end
38
+ http.use_ssl = @config.useSsl?
44
39
 
45
40
  time = Time.now.to_i
46
41
  headers = {'X-PR-Timestamp': time.to_s,
@@ -2,13 +2,19 @@ module PaymentRails
2
2
  class Configuration
3
3
 
4
4
  def initialize(publicKey, privateKey, environment = 'production')
5
+ # if publicKey&.empty? || privateKey&.empty?
6
+ # raise ArgumentError, 'Both key/secret must be a nonempty string'
7
+ # end
8
+
9
+ raise ArgumentError, 'Both key/secret must be a nonempty string' if publicKey&.empty? || privateKey&.empty?
10
+
5
11
  @publicKey = publicKey
6
12
  @privateKey = privateKey
7
- @apiBase = set_environment(environment)
13
+ @environment = environment
8
14
  end
9
15
 
10
- def set_environment(apiBase)
11
- case apiBase
16
+ def apiBase
17
+ case environment
12
18
  when 'production'
13
19
  'https://api.paymentrails.com'
14
20
  when 'development'
@@ -20,6 +26,10 @@ module PaymentRails
20
26
  end
21
27
  end
22
28
 
29
+ def useSsl?
30
+ apiBase.start_with? 'https'
31
+ end
32
+
23
33
  attr_reader :publicKey
24
34
 
25
35
  attr_writer :publicKey
@@ -28,6 +38,6 @@ module PaymentRails
28
38
 
29
39
  attr_writer :privateKey
30
40
 
31
- attr_reader :apiBase
41
+ attr_reader :environment
32
42
  end
33
43
  end
@@ -21,6 +21,9 @@ module PaymentRails
21
21
  attr_reader :balance
22
22
  attr_writer :balance
23
23
 
24
+ attr_reader :offline_payment
25
+ attr_writer :offline_payment
26
+
24
27
  def initialize(config)
25
28
  @config = config
26
29
  @client = Client.new(config)
@@ -29,6 +32,7 @@ module PaymentRails
29
32
  @batch = BatchGateway.new(client)
30
33
  @payment = PaymentGateway.new(client)
31
34
  @balance = BalanceGateway.new(client)
35
+ @offline_payment = OfflinePaymentGateway.new(client)
32
36
  end
33
37
  end
34
38
  end
@@ -0,0 +1,6 @@
1
+ module PaymentRails
2
+ class OfflinePayment
3
+ attr_accessor :id, :recipientId, :externalId, :memo, :tags, :taxReportable, :category, :amount, :currency, :withholdingAmount, :withholdingCurrency, :processedAt, :equivalentWithholdingAmount, :equivalentWithholdingCurrency, :updatedAt, :createdAt, :deletedAt
4
+ attr_writer :id, :externalId, :memo, :tags, :taxReportable, :category, :amount, :currency, :withholdingAmount, :withholdingCurrency, :processedAt
5
+ end
6
+ end
@@ -1,6 +1,49 @@
1
1
  module PaymentRails
2
2
  class Payment
3
- attr_writer :id, :status, :isSupplyPayment, :returnedAmount, :sourceAmount, :sourceCurrency, :targetAmount, :targetCurrency, :exchangeRate, :fees, :recipientFees, :fxRate, :memo, :externalId, :processedAt, :createdAt, :updatedAt, :merchantFees, :compliance, :payoutMethod, :recipient, :withholdingAmount, :withholdingCurrency, :equivalentWithholdingAmount, :equivalentWithholdingCurrency, :methodDisplay, :batch, :coverFees, :category, :amount, :currency, :taxReportable, :taxBasisAmount, :taxBasisCurrency, :tags, :account, :initiatedAt, :settledAt, :returnedAt, :failureMessage, :merchantId
4
- attr_reader :id, :status, :isSupplyPayment, :returnedAmount, :sourceAmount, :sourceCurrency, :targetAmount, :targetCurrency, :exchangeRate, :fees, :recipientFees, :fxRate, :memo, :externalId, :processedAt, :createdAt, :updatedAt, :merchantFees, :compliance, :payoutMethod, :recipient, :withholdingAmount, :withholdingCurrency, :equivalentWithholdingAmount, :equivalentWithholdingCurrency, :methodDisplay, :batch, :coverFees, :category, :amount, :currency, :taxReportable, :taxBasisAmount, :taxBasisCurrency, :tags, :account, :initiatedAt, :settledAt, :returnedAt, :failureMessage, :merchantId
3
+ attr_accessor(
4
+ :id,
5
+ :status,
6
+ :isSupplyPayment,
7
+ :returnedAmount,
8
+ :sourceAmount,
9
+ :sourceCurrency,
10
+ :targetAmount,
11
+ :targetCurrency,
12
+ :exchangeRate,
13
+ :fees,
14
+ :recipientFees,
15
+ :fxRate,
16
+ :memo,
17
+ :externalId,
18
+ :processedAt,
19
+ :createdAt,
20
+ :updatedAt,
21
+ :merchantFees,
22
+ :compliance,
23
+ :payoutMethod,
24
+ :recipient,
25
+ :withholdingAmount,
26
+ :withholdingCurrency,
27
+ :equivalentWithholdingAmount,
28
+ :equivalentWithholdingCurrency,
29
+ :methodDisplay,
30
+ :batch,
31
+ :coverFees,
32
+ :category,
33
+ :amount,
34
+ :currency,
35
+ :taxReportable,
36
+ :taxBasisAmount,
37
+ :taxBasisCurrency,
38
+ :tags,
39
+ :account,
40
+ :initiatedAt,
41
+ :settledAt,
42
+ :returnedAt,
43
+ :returnedNote,
44
+ :returnedReason,
45
+ :failureMessage,
46
+ :merchantId
47
+ )
5
48
  end
6
49
  end
@@ -0,0 +1,63 @@
1
+ require_relative '../Client.rb'
2
+
3
+ module PaymentRails
4
+ class OfflinePaymentGateway
5
+ def initialize(client)
6
+ @client = client
7
+ end
8
+
9
+ def create(recipient_id, body)
10
+ response = @client.post('/v1/recipients/' + recipient_id + '/offlinePayments', body)
11
+ offline_payment_builder(response)
12
+ end
13
+
14
+ def update(recipient_id, offline_payment_id, body)
15
+ @client.patch('/v1/recipients/' + recipient_id + '/offlinePayments/' + offline_payment_id, body)
16
+ true
17
+ end
18
+
19
+ def delete(recipient_id, offline_payment_id)
20
+ @client.delete('/v1/recipients/' + recipient_id + '/offlinePayments/' + offline_payment_id)
21
+ true
22
+ end
23
+
24
+ def search(recipient_id = '', page = 1, page_size = 10, term = '')
25
+ if recipient_id === ''
26
+ response = @client.get('/v1/offline-payments?page=' + page.to_s + '&pageSize=' + page_size.to_s + '&search=' + term)
27
+ else
28
+ response = @client.get('/v1/recipients/' + recipient_id + '/offlinePayments?page=' + page.to_s + '&pageSize=' + page_size.to_s + '&search=' + term)
29
+ end
30
+
31
+ offline_payments_list_builder(response)
32
+ end
33
+
34
+ def offline_payment_builder(response)
35
+ offline_payment = OfflinePayment.new
36
+ data = JSON.parse(response)
37
+ data.each do |key, value|
38
+ next unless key === 'offlinePayment'
39
+ value.each do |opKey, opValue|
40
+ offline_payment.send("#{opKey}=", opValue)
41
+ end
42
+ end
43
+ offline_payment
44
+ end
45
+
46
+ def offline_payments_list_builder(response)
47
+ offline_payments = []
48
+ data = JSON.parse(response)
49
+
50
+ data.each do |key, value|
51
+ next unless key === 'offlinePayments'
52
+ value.each do |newKey, _newValue|
53
+ offline_payment = OfflinePayment.new
54
+ newKey.each do |key1, value1|
55
+ offline_payment.send("#{key1}=", value1)
56
+ end
57
+ offline_payments.push(offline_payment)
58
+ end
59
+ end
60
+ offline_payments
61
+ end
62
+ end
63
+ end
@@ -22,7 +22,7 @@ module PaymentRails
22
22
  end
23
23
 
24
24
  def update(recipient_id, recipient_account_id, body)
25
- response = @client.patch('/v1/recipients/' + recipient_id, + '/accounts/' + recipient_account_id, body)
25
+ response = @client.patch('/v1/recipients/' + recipient_id + '/accounts/' + recipient_account_id, body)
26
26
  recipient_account_builder(response)
27
27
  end
28
28
 
@@ -4,12 +4,13 @@ Gem::Specification.new do |s|
4
4
  s.name = "paymentrails"
5
5
  s.summary = "PaymentRails Ruby SDK"
6
6
  s.description = "Ruby SDK for interacting with the PaymentRails API"
7
- s.version = '0.2.0'
7
+ s.version = '0.2.2'
8
8
  s.homepage = 'https://www.paymentrails.com/'
9
- s.email = ['jesse.silber@paymentrails.com', 'joshua@paymentrails.com']
9
+ s.email = ['joshua@paymentrails.com']
10
10
  s.license = "MIT"
11
11
  s.author = "PaymentRails"
12
- s.has_rdoc = false
13
12
  s.files = Dir.glob ["README.rdoc", "LICENSE", "lib/**/*.{rb,crt}", "spec/**/*", "*.gemspec"]
13
+ s.required_ruby_version = '>= 2.4'
14
14
  s.add_dependency "rest-client", ">= 2.0.0"
15
+ s.add_development_dependency "rubocop", '~> 0.77'
15
16
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paymentrails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - PaymentRails
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-06 00:00:00.000000000 Z
11
+ date: 2019-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -24,9 +24,22 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 2.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubocop
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.77'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.77'
27
41
  description: Ruby SDK for interacting with the PaymentRails API
28
42
  email:
29
- - jesse.silber@paymentrails.com
30
43
  - joshua@paymentrails.com
31
44
  executables: []
32
45
  extensions: []
@@ -41,11 +54,13 @@ files:
41
54
  - lib/paymentrails/Configuration.rb
42
55
  - lib/paymentrails/Exceptions.rb
43
56
  - lib/paymentrails/Gateway.rb
57
+ - lib/paymentrails/OfflinePayment.rb
44
58
  - lib/paymentrails/Payment.rb
45
59
  - lib/paymentrails/Recipient.rb
46
60
  - lib/paymentrails/RecipientAccount.rb
47
61
  - lib/paymentrails/gateways/BalanceGateway.rb
48
62
  - lib/paymentrails/gateways/BatchGateway.rb
63
+ - lib/paymentrails/gateways/OfflinePaymentGateway.rb
49
64
  - lib/paymentrails/gateways/PaymentGateway.rb
50
65
  - lib/paymentrails/gateways/RecipientAccountGateway.rb
51
66
  - lib/paymentrails/gateways/RecipientGateway.rb
@@ -64,7 +79,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
64
79
  requirements:
65
80
  - - ">="
66
81
  - !ruby/object:Gem::Version
67
- version: '0'
82
+ version: '2.4'
68
83
  required_rubygems_version: !ruby/object:Gem::Requirement
69
84
  requirements:
70
85
  - - ">="