paypal-sdk-rest 1.6.1 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/paypal-sdk/rest/data_types.rb +68 -5
- data/lib/paypal-sdk/rest/version.rb +1 -1
- data/spec/core/api/data_type_spec.rb +100 -0
- data/spec/core/api/rest_spec.rb +3 -2
- 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: d165dec1b67f8e996a1d4fe9a406bc3b388428c4
|
4
|
+
data.tar.gz: bfab6906d27219ecb60cb74af6afacec35e316e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6678cc8c36716ab8a898612c97ed8aa214f3349cbe2c23e154c4012657d17e10c053c468d835ef2ecd30a4902a01850bf8346d8bf6eec550b8c5248e93002603
|
7
|
+
data.tar.gz: 584469eaffaae16b69cce489b15635644c03970b02471e1cea4a0671612521f5d7c1a39faea627e947dbdfef770724aee13e9f4db03c9b546992f797c18fd147
|
@@ -365,7 +365,7 @@ module PayPal::SDK
|
|
365
365
|
raise_on_api_error :create, :update, :delete
|
366
366
|
end
|
367
367
|
|
368
|
-
class
|
368
|
+
class BaseAddress < Base
|
369
369
|
def self.load_members
|
370
370
|
object_of :line1, String
|
371
371
|
object_of :line2, String
|
@@ -373,13 +373,24 @@ module PayPal::SDK
|
|
373
373
|
object_of :country_code, String
|
374
374
|
object_of :postal_code, String
|
375
375
|
object_of :state, String
|
376
|
-
object_of :phone, String
|
377
376
|
object_of :normalization_status, String
|
378
377
|
object_of :status, String
|
379
378
|
object_of :type, String
|
380
379
|
end
|
381
380
|
end
|
382
381
|
|
382
|
+
class Address < BaseAddress
|
383
|
+
def self.load_members
|
384
|
+
object_of :phone, String
|
385
|
+
end
|
386
|
+
end
|
387
|
+
|
388
|
+
class InvoiceAddress < BaseAddress
|
389
|
+
def self.load_members
|
390
|
+
object_of :phone, Phone
|
391
|
+
end
|
392
|
+
end
|
393
|
+
|
383
394
|
class OneOf < Base
|
384
395
|
def self.load_members
|
385
396
|
object_of :phone, Phone
|
@@ -1811,11 +1822,37 @@ module PayPal::SDK
|
|
1811
1822
|
object_of :first_name, String
|
1812
1823
|
object_of :last_name, String
|
1813
1824
|
object_of :business_name, String
|
1814
|
-
object_of :address,
|
1825
|
+
object_of :address, InvoiceAddress
|
1815
1826
|
object_of :language, String
|
1816
1827
|
object_of :additional_info, String
|
1817
1828
|
object_of :notification_channel, String
|
1818
1829
|
object_of :phone, Phone
|
1830
|
+
|
1831
|
+
define_method "address=" do |value|
|
1832
|
+
if value.is_a?(Address)
|
1833
|
+
value = value.to_hash
|
1834
|
+
end
|
1835
|
+
object = convert_object(value, InvoiceAddress)
|
1836
|
+
instance_variable_set("@address", object)
|
1837
|
+
end
|
1838
|
+
|
1839
|
+
define_method "address" do |&block|
|
1840
|
+
default_value = PayPal::SDK::Core::Util::OrderedHash.new
|
1841
|
+
value = instance_variable_get("@address") || ( default_value && (send("address=", default_value)))
|
1842
|
+
value = convert_object(value.to_hash, Address)
|
1843
|
+
value
|
1844
|
+
end
|
1845
|
+
|
1846
|
+
define_method "invoice_address=" do |value|
|
1847
|
+
object = convert_object(value, InvoiceAddress)
|
1848
|
+
instance_variable_set("@address", object)
|
1849
|
+
end
|
1850
|
+
|
1851
|
+
define_method "invoice_address" do |&block|
|
1852
|
+
default_value = PayPal::SDK::Core::Util::OrderedHash.new
|
1853
|
+
value = instance_variable_get("@address") || ( default_value && (send("address=", default_value)))
|
1854
|
+
value
|
1855
|
+
end
|
1819
1856
|
end
|
1820
1857
|
end
|
1821
1858
|
|
@@ -1824,8 +1861,34 @@ module PayPal::SDK
|
|
1824
1861
|
object_of :first_name, String
|
1825
1862
|
object_of :last_name, String
|
1826
1863
|
object_of :business_name, String
|
1827
|
-
object_of :address,
|
1864
|
+
object_of :address, InvoiceAddress
|
1828
1865
|
object_of :email, String
|
1866
|
+
|
1867
|
+
define_method "address=" do |value|
|
1868
|
+
if value.is_a?(Address)
|
1869
|
+
value = value.to_hash
|
1870
|
+
end
|
1871
|
+
object = convert_object(value, InvoiceAddress)
|
1872
|
+
instance_variable_set("@address", object)
|
1873
|
+
end
|
1874
|
+
|
1875
|
+
define_method "address" do |&block|
|
1876
|
+
default_value = PayPal::SDK::Core::Util::OrderedHash.new
|
1877
|
+
value = instance_variable_get("@address") || ( default_value && (send("address=", default_value)))
|
1878
|
+
value = convert_object(value.to_hash, Address)
|
1879
|
+
value
|
1880
|
+
end
|
1881
|
+
|
1882
|
+
define_method "invoice_address=" do |value|
|
1883
|
+
object = convert_object(value, InvoiceAddress)
|
1884
|
+
instance_variable_set("@address", object)
|
1885
|
+
end
|
1886
|
+
|
1887
|
+
define_method "invoice_address" do |&block|
|
1888
|
+
default_value = PayPal::SDK::Core::Util::OrderedHash.new
|
1889
|
+
value = instance_variable_get("@address") || ( default_value && (send("address=", default_value)))
|
1890
|
+
value
|
1891
|
+
end
|
1829
1892
|
end
|
1830
1893
|
end
|
1831
1894
|
|
@@ -2110,7 +2173,7 @@ module PayPal::SDK
|
|
2110
2173
|
object_of :rel, String
|
2111
2174
|
object_of :targetSchema, HyperSchema
|
2112
2175
|
object_of :method, String
|
2113
|
-
object_of :
|
2176
|
+
object_of :encType, String
|
2114
2177
|
object_of :schema, HyperSchema
|
2115
2178
|
end
|
2116
2179
|
end
|
@@ -56,6 +56,106 @@ describe PayPal::SDK::Core::API::DataTypes::Base do
|
|
56
56
|
expect(test_type.fromCurrency.amount).to eql "50.0"
|
57
57
|
end
|
58
58
|
|
59
|
+
it "invoice address loads all members of default address object" do
|
60
|
+
invoice_address = InvoiceAddress.new(:line1 => "line1", :line2 => "line2", :phone => { :country_code => "123", :national_number => "1231231234", :extension => "123" }, :status => "status" )
|
61
|
+
expect(invoice_address).to be_a InvoiceAddress
|
62
|
+
expect(invoice_address.phone).to be_a Phone
|
63
|
+
expect(invoice_address.line1).to eql "line1"
|
64
|
+
expect(invoice_address.line2).to eql "line2"
|
65
|
+
expect(invoice_address.status).to eql "status"
|
66
|
+
expect(invoice_address.phone.country_code).to eql "123"
|
67
|
+
expect(invoice_address.phone.national_number).to eql "1231231234"
|
68
|
+
expect(invoice_address.phone.extension).to eql "123"
|
69
|
+
end
|
70
|
+
|
71
|
+
it "billing info converts an address to invoiceaddress automatically" do
|
72
|
+
address = Address.new(:line1 => "line1", :line2 => "line2", :status => "status" )
|
73
|
+
billing_info = BillingInfo.new({
|
74
|
+
:first_name => "Sally",
|
75
|
+
:last_name => "Patient",
|
76
|
+
:business_name => "Not applicable",
|
77
|
+
})
|
78
|
+
billing_info.address = address
|
79
|
+
expect(billing_info.address).to be_a Address
|
80
|
+
expect(billing_info.invoice_address).to be_a InvoiceAddress
|
81
|
+
end
|
82
|
+
|
83
|
+
it "shipping info returns an Address even if set to InvoiceAddress for backwards compatibility" do
|
84
|
+
address = InvoiceAddress.new(:line1 => "line1", :line2 => "line2", :status => "status", :phone => { :national_number => "1234567890" } )
|
85
|
+
billing_info = BillingInfo.new({
|
86
|
+
:first_name => "Sally",
|
87
|
+
:last_name => "Patient",
|
88
|
+
:business_name => "Not applicable",
|
89
|
+
})
|
90
|
+
billing_info.address = address
|
91
|
+
expect(billing_info.address).to be_a Address
|
92
|
+
expect(billing_info.invoice_address).to be_a InvoiceAddress
|
93
|
+
expect(billing_info.invoice_address.phone.national_number).to eql "1234567890"
|
94
|
+
end
|
95
|
+
|
96
|
+
it "returns the address and invoice address types in the billing info" do
|
97
|
+
billing_info = BillingInfo.new({
|
98
|
+
"first_name" => "Sally",
|
99
|
+
"last_name" => "Patient",
|
100
|
+
"business_name" => "Not applicable",
|
101
|
+
"address" => {
|
102
|
+
"line1" => "line1Value",
|
103
|
+
"phone" => { "country_code" => "123", "national_number" => "1234567890", "extension" => "456" },
|
104
|
+
},
|
105
|
+
})
|
106
|
+
expect(billing_info.address).to be_a Address
|
107
|
+
expect(billing_info.address.line1).to eql "line1Value"
|
108
|
+
expect(billing_info.invoice_address).to be_a InvoiceAddress
|
109
|
+
expect(billing_info.invoice_address.line1).to eql "line1Value"
|
110
|
+
expect(billing_info.invoice_address.phone.country_code).to eql "123"
|
111
|
+
expect(billing_info.invoice_address.phone.national_number).to eql "1234567890"
|
112
|
+
expect(billing_info.invoice_address.phone.extension).to eql "456"
|
113
|
+
end
|
114
|
+
|
115
|
+
it "shipping info converts an address to invoiceaddress automatically" do
|
116
|
+
address = Address.new(:line1 => "line1", :line2 => "line2", :status => "status" )
|
117
|
+
shipping_info = ShippingInfo.new({
|
118
|
+
"first_name" => "Sally",
|
119
|
+
"last_name" => "Patient",
|
120
|
+
"business_name" => "Not applicable",
|
121
|
+
})
|
122
|
+
shipping_info.address = address
|
123
|
+
expect(shipping_info.address).to be_a Address
|
124
|
+
expect(shipping_info.invoice_address).to be_a InvoiceAddress
|
125
|
+
end
|
126
|
+
|
127
|
+
it "shipping info returns an Address even if set to InvoiceAddress for backwards compatibility" do
|
128
|
+
address = InvoiceAddress.new(:line1 => "line1", :line2 => "line2", :status => "status", :phone => { :national_number => "1234567890" } )
|
129
|
+
shipping_info = ShippingInfo.new({
|
130
|
+
"first_name" => "Sally",
|
131
|
+
"last_name" => "Patient",
|
132
|
+
"business_name" => "Not applicable",
|
133
|
+
})
|
134
|
+
shipping_info.address = address
|
135
|
+
expect(shipping_info.address).to be_a Address
|
136
|
+
expect(shipping_info.invoice_address).to be_a InvoiceAddress
|
137
|
+
expect(shipping_info.invoice_address.phone.national_number).to eql "1234567890"
|
138
|
+
end
|
139
|
+
|
140
|
+
it "returns the address and invoice address types in the shipping info" do
|
141
|
+
shipping_info = ShippingInfo.new({
|
142
|
+
"first_name" => "Sally",
|
143
|
+
"last_name" => "Patient",
|
144
|
+
"business_name" => "Not applicable",
|
145
|
+
"address" => {
|
146
|
+
"line1" => "line1Value",
|
147
|
+
"phone" => { "country_code" => "123", "national_number" => "1234567890", "extension" => "456" },
|
148
|
+
},
|
149
|
+
})
|
150
|
+
expect(shipping_info.address).to be_a Address
|
151
|
+
expect(shipping_info.address.line1).to eql "line1Value"
|
152
|
+
expect(shipping_info.invoice_address).to be_a InvoiceAddress
|
153
|
+
expect(shipping_info.invoice_address.line1).to eql "line1Value"
|
154
|
+
expect(shipping_info.invoice_address.phone.country_code).to eql "123"
|
155
|
+
expect(shipping_info.invoice_address.phone.national_number).to eql "1234567890"
|
156
|
+
expect(shipping_info.invoice_address.phone.extension).to eql "456"
|
157
|
+
end
|
158
|
+
|
59
159
|
it "should allow block with initializer" do
|
60
160
|
test_type = TestType.new do
|
61
161
|
fromCurrency do
|
data/spec/core/api/rest_spec.rb
CHANGED
@@ -76,10 +76,11 @@ describe PayPal::SDK::Core::API::REST do
|
|
76
76
|
}.to raise_error PayPal::SDK::Core::Exceptions::UnauthorizedAccess
|
77
77
|
end
|
78
78
|
|
79
|
-
|
79
|
+
it "Should handle expired token" do
|
80
80
|
old_token = @api.token
|
81
81
|
@api.token_hash[:expires_in] = 0
|
82
|
-
|
82
|
+
new_token = @api.token
|
83
|
+
expect(@api.token_hash[:expires_in]).not_to eql 0
|
83
84
|
end
|
84
85
|
|
85
86
|
it "Get token" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paypal-sdk-rest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- PayPal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: coveralls
|