active_payment 0.9.0 → 1.0.0
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/lib/active_payment/gateway.rb +3 -3
- data/lib/active_payment/models/concerns/paypal_payable.rb +16 -0
- data/lib/active_payment/models/concerns/paypal_payee.rb +14 -0
- data/lib/active_payment/models/payable.rb +7 -12
- data/lib/active_payment/models/payee.rb +6 -10
- data/lib/active_payment/models/sale.rb +2 -2
- data/lib/active_payment/version.rb +1 -1
- data/lib/active_payment.rb +2 -0
- data/spec/active_payment/models/payable_spec.rb +27 -7
- data/spec/active_payment/models/payee_spec.rb +13 -5
- data/spec/active_payment/models/sale_spec.rb +2 -2
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +6765 -0
- data/spec/helper.rb +8 -4
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aedbd01450926d0d0b744e1b06619e2bf2c0b4c1
|
4
|
+
data.tar.gz: 8abe24d2336acf58b71f2eea631d93bb8ee27c02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4007087f5b29cc94ce7a5c248d1b3c6056b80f91aa991601139ab6baf27eb3b00b1393b3b49604496b0ff6f7f5974a80d87f94812552a848db1a483e05687875
|
7
|
+
data.tar.gz: 2c149d470c268420b10f6ec7c6089ae238354c5abf128e42ea77d32317117712158c647f9c969932581d5a8a850cdcbcb1df0ad0b5015eb833590562a81ac998
|
@@ -80,14 +80,14 @@ module ActivePayment
|
|
80
80
|
|
81
81
|
@gateway.sales.each do |sale|
|
82
82
|
@transactions << ActivePayment::Transaction.create({
|
83
|
-
currency:
|
83
|
+
currency: sale.payable.currency,
|
84
84
|
gateway: @gateway.class.to_s,
|
85
85
|
amount: sale.amount_in_cents,
|
86
86
|
ip_address: ip_address,
|
87
87
|
payee_id: sale.payee.id,
|
88
88
|
payer_id: sale.payer.id,
|
89
|
-
payable_id: sale.payable.
|
90
|
-
payable_type: sale.payable.
|
89
|
+
payable_id: sale.payable.id,
|
90
|
+
payable_type: sale.payable.class.to_s,
|
91
91
|
reference_number: sale.payable.reference_number,
|
92
92
|
external_id: @purchase_token,
|
93
93
|
metadata: { description: sale.payable.description }
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module ActivePayment
|
2
|
+
module Models
|
3
|
+
module PaypalPayable
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
def to_paypal_hash
|
7
|
+
{
|
8
|
+
name: @description,
|
9
|
+
amount: @amount.to_i,
|
10
|
+
number: @number.to_i,
|
11
|
+
quantity: @quantity.to_i
|
12
|
+
}
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -1,27 +1,22 @@
|
|
1
1
|
module ActivePayment
|
2
2
|
module Models
|
3
3
|
class Payable
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
include ActivePayment::Models::PaypalPayable
|
5
|
+
|
6
|
+
attr_accessor :id, :class, :description, :amount,
|
7
|
+
:reference_number, :external_id,
|
8
|
+
:shipping, :tax, :number, :quantity,
|
9
|
+
:currency
|
7
10
|
|
8
11
|
def initialize(params = {})
|
9
12
|
@tax = 0
|
10
13
|
@shipping = 0
|
11
14
|
@number = 1
|
12
15
|
@quantity = 1
|
16
|
+
@currency = 'USD'
|
13
17
|
|
14
18
|
params.each { |key, value| send "#{key}=", value }
|
15
19
|
end
|
16
|
-
|
17
|
-
def to_paypal_hash
|
18
|
-
{
|
19
|
-
name: @description,
|
20
|
-
amount: @amount.to_i,
|
21
|
-
number: @number.to_i,
|
22
|
-
quantity: @quantity.to_i
|
23
|
-
}
|
24
|
-
end
|
25
20
|
end
|
26
21
|
end
|
27
22
|
end
|
@@ -1,18 +1,14 @@
|
|
1
1
|
module ActivePayment
|
2
2
|
module Models
|
3
3
|
class Payee
|
4
|
-
|
4
|
+
include ActivePayment::Models::PaypalPayee
|
5
5
|
|
6
|
-
|
7
|
-
@identifier = identifier
|
8
|
-
@primary = primary
|
9
|
-
end
|
6
|
+
attr_accessor :id, :paypal_identifier, :primary
|
10
7
|
|
11
|
-
def
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
}
|
8
|
+
def initialize(id:, paypal_identifier:, primary: false)
|
9
|
+
@id = id
|
10
|
+
@paypal_identifier = paypal_identifier
|
11
|
+
@primary = primary
|
16
12
|
end
|
17
13
|
end
|
18
14
|
end
|
@@ -31,7 +31,7 @@ module ActivePayment
|
|
31
31
|
|
32
32
|
def paypal_recipient
|
33
33
|
{
|
34
|
-
email: payee.
|
34
|
+
email: payee.paypal_identifier,
|
35
35
|
amount: amount,
|
36
36
|
primary: false
|
37
37
|
}
|
@@ -51,7 +51,7 @@ module ActivePayment
|
|
51
51
|
total_tax: payable.tax
|
52
52
|
},
|
53
53
|
receiver: {
|
54
|
-
email: @payee.
|
54
|
+
email: @payee.paypal_identifier
|
55
55
|
}
|
56
56
|
}
|
57
57
|
end
|
data/lib/active_payment.rb
CHANGED
@@ -8,6 +8,8 @@ require 'active_payment/gateway'
|
|
8
8
|
require 'active_payment/configuration'
|
9
9
|
require 'active_payment/gateways/paypal_adaptive_payment'
|
10
10
|
require 'active_payment/gateways/paypal_express_checkout'
|
11
|
+
require 'active_payment/models/concerns/paypal_payable'
|
12
|
+
require 'active_payment/models/concerns/paypal_payee'
|
11
13
|
require 'active_payment/models/payee'
|
12
14
|
require 'active_payment/models/sale'
|
13
15
|
require 'active_payment/models/sales'
|
@@ -8,9 +8,10 @@ describe ActivePayment::Models::Payable do
|
|
8
8
|
|
9
9
|
it 'should set attributes when passing a hash' do
|
10
10
|
service = ActivePayment::Models::Payable.new({
|
11
|
+
id: 1,
|
12
|
+
class: 'PayableObj',
|
11
13
|
description: 'desc',
|
12
14
|
amount: 1000,
|
13
|
-
reference: 200,
|
14
15
|
reference_number: 'ABC123',
|
15
16
|
number: 999,
|
16
17
|
quantity: 300,
|
@@ -19,9 +20,10 @@ describe ActivePayment::Models::Payable do
|
|
19
20
|
shipping: 456
|
20
21
|
})
|
21
22
|
|
23
|
+
expect(service.id).to eq(1)
|
24
|
+
expect(service.class).to eq('PayableObj')
|
22
25
|
expect(service.description).to eq('desc')
|
23
26
|
expect(service.amount).to eq(1000)
|
24
|
-
expect(service.reference).to eq(200)
|
25
27
|
expect(service.reference_number).to eq('ABC123')
|
26
28
|
expect(service.external_id).to eq('100')
|
27
29
|
expect(service.tax).to eq(123)
|
@@ -30,11 +32,25 @@ describe ActivePayment::Models::Payable do
|
|
30
32
|
expect(service.quantity).to eq(300)
|
31
33
|
end
|
32
34
|
|
35
|
+
it 'should set default currency value to USD if not set' do
|
36
|
+
service = ActivePayment::Models::Payable.new({
|
37
|
+
id: 1,
|
38
|
+
class: 'PayableObj',
|
39
|
+
description: 'desc',
|
40
|
+
amount: 1000,
|
41
|
+
reference_number: 'ABC123',
|
42
|
+
external_id: '100',
|
43
|
+
shipping: 456
|
44
|
+
})
|
45
|
+
expect(service.currency).to eq('USD')
|
46
|
+
end
|
47
|
+
|
33
48
|
it 'should set default tax value to 0 if not set' do
|
34
49
|
service = ActivePayment::Models::Payable.new({
|
50
|
+
id: 1,
|
51
|
+
class: 'PayableObj',
|
35
52
|
description: 'desc',
|
36
53
|
amount: 1000,
|
37
|
-
reference: 200,
|
38
54
|
reference_number: 'ABC123',
|
39
55
|
external_id: '100',
|
40
56
|
shipping: 456
|
@@ -44,9 +60,10 @@ describe ActivePayment::Models::Payable do
|
|
44
60
|
|
45
61
|
it 'should set default shipping value to 0 if not set' do
|
46
62
|
service = ActivePayment::Models::Payable.new({
|
63
|
+
id: 1,
|
64
|
+
class: 'PayableObj',
|
47
65
|
description: 'desc',
|
48
66
|
amount: 1000,
|
49
|
-
reference: 200,
|
50
67
|
reference_number: 'ABC123',
|
51
68
|
external_id: '100',
|
52
69
|
tax: 123
|
@@ -57,9 +74,10 @@ describe ActivePayment::Models::Payable do
|
|
57
74
|
|
58
75
|
it 'should set default number value to 1 if not set' do
|
59
76
|
service = ActivePayment::Models::Payable.new({
|
77
|
+
id: 1,
|
78
|
+
class: 'PayableObj',
|
60
79
|
description: 'desc',
|
61
80
|
amount: 1000,
|
62
|
-
reference: 200,
|
63
81
|
reference_number: 'ABC123',
|
64
82
|
external_id: '100',
|
65
83
|
shipping: 456
|
@@ -69,9 +87,10 @@ describe ActivePayment::Models::Payable do
|
|
69
87
|
|
70
88
|
it 'should set default quantity value to 1 if not set' do
|
71
89
|
service = ActivePayment::Models::Payable.new({
|
90
|
+
id: 1,
|
91
|
+
class: 'PayableObj',
|
72
92
|
description: 'desc',
|
73
93
|
amount: 1000,
|
74
|
-
reference: 200,
|
75
94
|
reference_number: 'ABC123',
|
76
95
|
external_id: '100',
|
77
96
|
shipping: 456
|
@@ -82,9 +101,10 @@ describe ActivePayment::Models::Payable do
|
|
82
101
|
describe 'to_paypal_hash' do
|
83
102
|
it 'should returns expect value' do
|
84
103
|
service = ActivePayment::Models::Payable.new({
|
104
|
+
id: 1,
|
105
|
+
class: 'PayableObj',
|
85
106
|
description: 'desc',
|
86
107
|
amount: 1000,
|
87
|
-
reference: 200,
|
88
108
|
reference_number: 'ABC123',
|
89
109
|
external_id: '100',
|
90
110
|
tax: 123,
|
@@ -6,24 +6,32 @@ describe ActivePayment::Models::Payee do
|
|
6
6
|
expect { ActivePayment::Models::Payee.new }.to raise_error(ArgumentError)
|
7
7
|
end
|
8
8
|
|
9
|
-
it 'should
|
10
|
-
expect { ActivePayment::Models::Payee.new(
|
9
|
+
it 'should raise error if trying to initialize without id' do
|
10
|
+
expect { ActivePayment::Models::Payee.new(paypal_identifier: 'test@test.com') }.to raise_error(ArgumentError)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should raise error if trying to initialize without identifier' do
|
14
|
+
expect { ActivePayment::Models::Payee.new(id: 1) }.to raise_error(ArgumentError)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should not raise error when using id/identifier parameters' do
|
18
|
+
expect { ActivePayment::Models::Payee.new(id: 1, paypal_identifier: 'test@test.com') }.not_to raise_error
|
11
19
|
end
|
12
20
|
|
13
21
|
it 'should set primary default value to false' do
|
14
|
-
service = ActivePayment::Models::Payee.new(
|
22
|
+
service = ActivePayment::Models::Payee.new(id: 1, paypal_identifier: 'test@test.com')
|
15
23
|
expect(service.primary).to eq(false)
|
16
24
|
end
|
17
25
|
|
18
26
|
it 'should allow to set primary value' do
|
19
|
-
service = ActivePayment::Models::Payee.new(
|
27
|
+
service = ActivePayment::Models::Payee.new(id: 1, paypal_identifier: 'test@test.com', primary: true)
|
20
28
|
expect(service.primary).to eq(true)
|
21
29
|
end
|
22
30
|
end
|
23
31
|
|
24
32
|
describe 'to_paypal_hash' do
|
25
33
|
it 'should returns expect value' do
|
26
|
-
service = ActivePayment::Models::Payee.new(
|
34
|
+
service = ActivePayment::Models::Payee.new(id: 1, paypal_identifier: 'test@test.com')
|
27
35
|
expect(service.to_paypal_hash.class).to eq(Hash)
|
28
36
|
expect(service.to_paypal_hash[:email]).to eq('test@test.com')
|
29
37
|
expect(service.to_paypal_hash[:primary]).to eq(false)
|
@@ -52,7 +52,7 @@ describe ActivePayment::Models::Sale do
|
|
52
52
|
describe 'paypal_recipient' do
|
53
53
|
it 'displays the paypal_recipient hash with correct values' do
|
54
54
|
expect(@sale.paypal_recipient).to eq({
|
55
|
-
email: @sale.payee.
|
55
|
+
email: @sale.payee.paypal_identifier,
|
56
56
|
amount: 1,
|
57
57
|
primary: false
|
58
58
|
})
|
@@ -74,7 +74,7 @@ describe ActivePayment::Models::Sale do
|
|
74
74
|
total_tax: @sale.payable.tax
|
75
75
|
},
|
76
76
|
receiver: {
|
77
|
-
email: @sale.payee.
|
77
|
+
email: @sale.payee.paypal_identifier
|
78
78
|
}
|
79
79
|
})
|
80
80
|
end
|
data/spec/dummy/db/test.sqlite3
CHANGED
Binary file
|