mollie-api-ruby 4.0.0 → 4.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 +5 -5
- data/.rubocop.yml +10 -0
- data/.rubocop_todo.yml +92 -0
- data/.travis.yml +3 -1
- data/CHANGELOG.md +1 -1
- data/Gemfile +1 -1
- data/Rakefile +1 -2
- data/bin/console +4 -4
- data/docs/migration_v2_2_x.md +1 -1
- data/docs/migration_v3_x.md +2 -2
- data/examples/chargebacks/get.rb +2 -2
- data/examples/customers/create-payment.rb +4 -4
- data/examples/customers/create.rb +3 -3
- data/examples/customers/delete.rb +1 -1
- data/examples/customers/get.rb +1 -1
- data/examples/customers/list-payments.rb +1 -1
- data/examples/customers/update.rb +2 -2
- data/examples/invoices/get.rb +1 -1
- data/examples/mandates/create.rb +7 -7
- data/examples/mandates/delete.rb +1 -1
- data/examples/mandates/get.rb +1 -1
- data/examples/mandates/list.rb +1 -1
- data/examples/methods/get.rb +2 -2
- data/examples/organisations/get.rb +1 -1
- data/examples/payments/delete.rb +1 -1
- data/examples/payments/get-customer.rb +1 -1
- data/examples/payments/get-mandate.rb +1 -1
- data/examples/payments/get-settlement.rb +1 -1
- data/examples/payments/get-subscription.rb +1 -1
- data/examples/payments/get.rb +1 -1
- data/examples/payments/webhook.rb +1 -1
- data/examples/permissions/get.rb +1 -1
- data/examples/profiles/create.rb +6 -6
- data/examples/profiles/delete.rb +1 -1
- data/examples/profiles/get.rb +1 -1
- data/examples/profiles/list-chargebacks.rb +1 -1
- data/examples/profiles/list-methods.rb +1 -1
- data/examples/profiles/list-payments.rb +1 -1
- data/examples/profiles/list-refunds.rb +1 -1
- data/examples/profiles/update.rb +3 -3
- data/examples/refunds/create.rb +3 -3
- data/examples/refunds/delete.rb +2 -2
- data/examples/refunds/get.rb +2 -2
- data/examples/settlements/get.rb +1 -1
- data/examples/settlements/list-chargebacks.rb +1 -1
- data/examples/settlements/list-payments.rb +1 -1
- data/examples/settlements/list-refunds.rb +1 -1
- data/examples/subscriptions/create.rb +5 -5
- data/examples/subscriptions/delete.rb +2 -2
- data/examples/subscriptions/get.rb +2 -2
- data/examples/subscriptions/list.rb +1 -1
- data/examples/subscriptions/update.rb +1 -1
- data/lib/cacert.pem +2 -26
- data/lib/mollie.rb +0 -1
- data/lib/mollie/amount.rb +1 -1
- data/lib/mollie/base.rb +8 -8
- data/lib/mollie/chargeback.rb +12 -6
- data/lib/mollie/client.rb +17 -17
- data/lib/mollie/customer/mandate.rb +10 -6
- data/lib/mollie/customer/subscription.rb +15 -7
- data/lib/mollie/exception.rb +1 -1
- data/lib/mollie/invoice.rb +14 -6
- data/lib/mollie/list.rb +9 -13
- data/lib/mollie/method.rb +15 -15
- data/lib/mollie/organization.rb +1 -1
- data/lib/mollie/payment.rb +36 -16
- data/lib/mollie/permission.rb +18 -17
- data/lib/mollie/profile.rb +11 -7
- data/lib/mollie/refund.rb +12 -8
- data/lib/mollie/settlement.rb +17 -9
- data/lib/mollie/util.rb +8 -8
- data/lib/mollie/version.rb +1 -1
- data/mollie-api-ruby.gemspec +5 -4
- data/test/helper.rb +1 -1
- data/test/mollie/amount_test.rb +1 -1
- data/test/mollie/base_test.rb +72 -72
- data/test/mollie/chargeback_test.rb +36 -37
- data/test/mollie/client_test.rb +49 -49
- data/test/mollie/customer/mandate_test.rb +40 -40
- data/test/mollie/customer/payment_test.rb +5 -6
- data/test/mollie/customer/subscription_test.rb +45 -45
- data/test/mollie/customer_test.rb +12 -12
- data/test/mollie/invoice_test.rb +29 -29
- data/test/mollie/list_test.rb +23 -23
- data/test/mollie/method_test.rb +8 -8
- data/test/mollie/organization_test.rb +9 -9
- data/test/mollie/payment/chargeback_test.rb +4 -4
- data/test/mollie/payment/refund_test.rb +4 -4
- data/test/mollie/payment_test.rb +111 -111
- data/test/mollie/profile_test.rb +41 -42
- data/test/mollie/refund_test.rb +39 -39
- data/test/mollie/settlement/chargeback_test.rb +4 -4
- data/test/mollie/settlement/payment_test.rb +5 -5
- data/test/mollie/settlement/refund_test.rb +4 -4
- data/test/mollie/settlement_test.rb +53 -53
- data/test/mollie/util_test.rb +9 -11
- data/test/run-test.rb +4 -4
- metadata +46 -30
@@ -1 +1 @@
|
|
1
|
-
subscriptions = Mollie::Customer::Subscription.all(customer_id:
|
1
|
+
subscriptions = Mollie::Customer::Subscription.all(customer_id: 'cst_5a2pPrwaWy')
|
data/lib/cacert.pem
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
##
|
2
2
|
## Bundle of CA Root Certificates
|
3
3
|
##
|
4
|
-
## Certificate data from Mozilla as of:
|
4
|
+
## Certificate data from Mozilla as of: Tue Sep 4 09:47:40 2018 GMT
|
5
5
|
##
|
6
6
|
## This is a bundle of X.509 certificates of public Certificate Authorities
|
7
7
|
## (CA). These were automatically extracted from Mozilla's root certificates
|
@@ -14,7 +14,7 @@
|
|
14
14
|
## Just configure this file as the SSLCACertificateFile.
|
15
15
|
##
|
16
16
|
## Conversion done with mk-ca-bundle.pl version 1.27.
|
17
|
-
## SHA256:
|
17
|
+
## SHA256: c80f571d9f4ebca4a91e0ad3a546f263153d71afffc845c6f8f52ce9d1a2e8ec
|
18
18
|
##
|
19
19
|
|
20
20
|
|
@@ -2635,30 +2635,6 @@ kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
|
|
2635
2635
|
ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
|
2636
2636
|
-----END CERTIFICATE-----
|
2637
2637
|
|
2638
|
-
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
|
2639
|
-
====================================================
|
2640
|
-
-----BEGIN CERTIFICATE-----
|
2641
|
-
MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
|
2642
|
-
BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
|
2643
|
-
bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg
|
2644
|
-
RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw
|
2645
|
-
ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w
|
2646
|
-
SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE
|
2647
|
-
n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp
|
2648
|
-
ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
2649
|
-
CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537
|
2650
|
-
jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m
|
2651
|
-
ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP
|
2652
|
-
9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV
|
2653
|
-
4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH
|
2654
|
-
HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
|
2655
|
-
hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo
|
2656
|
-
BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
|
2657
|
-
URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl
|
2658
|
-
lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
|
2659
|
-
B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
|
2660
|
-
-----END CERTIFICATE-----
|
2661
|
-
|
2662
2638
|
Certinomis - Root CA
|
2663
2639
|
====================
|
2664
2640
|
-----BEGIN CERTIFICATE-----
|
data/lib/mollie.rb
CHANGED
data/lib/mollie/amount.rb
CHANGED
data/lib/mollie/base.rb
CHANGED
@@ -15,7 +15,7 @@ module Mollie
|
|
15
15
|
|
16
16
|
class << self
|
17
17
|
def create(data = {})
|
18
|
-
request(
|
18
|
+
request('POST', nil, data) do |response|
|
19
19
|
new(response)
|
20
20
|
end
|
21
21
|
end
|
@@ -24,25 +24,25 @@ module Mollie
|
|
24
24
|
id = nil
|
25
25
|
data = {}
|
26
26
|
|
27
|
-
request(
|
27
|
+
request('GET', id, data, options) do |response|
|
28
28
|
Mollie::List.new(response, self)
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
def get(id, options = {})
|
33
|
-
request(
|
33
|
+
request('GET', id, {}, options) do |response|
|
34
34
|
new(response)
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
38
|
def update(id, data = {})
|
39
|
-
request(
|
39
|
+
request('PATCH', id, data) do |response|
|
40
40
|
new(response)
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
44
|
def delete(id, options = {})
|
45
|
-
request(
|
45
|
+
request('DELETE', id, options)
|
46
46
|
end
|
47
47
|
|
48
48
|
def request(method, id = 0, data = {}, options = {})
|
@@ -52,15 +52,15 @@ module Mollie
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def id_param
|
55
|
-
"#{name.downcase.split(
|
55
|
+
"#{name.downcase.split('::')[-1]}_id".to_sym
|
56
56
|
end
|
57
57
|
|
58
58
|
def parent_id
|
59
|
-
"#{name.downcase.split(
|
59
|
+
"#{name.downcase.split('::')[-2]}_id".to_sym
|
60
60
|
end
|
61
61
|
|
62
62
|
def resource_name(parent_id = nil)
|
63
|
-
path = name.downcase.split(
|
63
|
+
path = name.downcase.split('::').slice(1..-1).map(&Util.method(:pluralize))
|
64
64
|
|
65
65
|
if path.size == 2 && parent_id
|
66
66
|
path.join("/#{parent_id}/")
|
data/lib/mollie/chargeback.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
module Mollie
|
2
2
|
class Chargeback < Base
|
3
|
-
|
4
3
|
attr_accessor :id,
|
5
4
|
:payment,
|
6
5
|
:amount,
|
@@ -10,18 +9,26 @@ module Mollie
|
|
10
9
|
:reversed_at,
|
11
10
|
:_links
|
12
11
|
|
13
|
-
|
12
|
+
alias links _links
|
14
13
|
|
15
14
|
def reversed?
|
16
15
|
!!reversed_at
|
17
16
|
end
|
18
17
|
|
19
18
|
def reversed_at=(reversed_at)
|
20
|
-
@reversed_at =
|
19
|
+
@reversed_at = begin
|
20
|
+
Time.parse(reversed_at)
|
21
|
+
rescue StandardError
|
22
|
+
nil
|
23
|
+
end
|
21
24
|
end
|
22
25
|
|
23
26
|
def created_at=(created_at)
|
24
|
-
@created_at =
|
27
|
+
@created_at = begin
|
28
|
+
Time.parse(created_at)
|
29
|
+
rescue StandardError
|
30
|
+
nil
|
31
|
+
end
|
25
32
|
end
|
26
33
|
|
27
34
|
def amount=(amount)
|
@@ -37,10 +44,9 @@ module Mollie
|
|
37
44
|
end
|
38
45
|
|
39
46
|
def settlement(options = {})
|
40
|
-
settlement_id = Util.extract_id(links,
|
47
|
+
settlement_id = Util.extract_id(links, 'settlement')
|
41
48
|
return if settlement_id.nil?
|
42
49
|
Settlement.get(settlement_id, options)
|
43
50
|
end
|
44
|
-
|
45
51
|
end
|
46
52
|
end
|
data/lib/mollie/client.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
module Mollie
|
2
2
|
class Client
|
3
|
-
API_ENDPOINT = 'https://api.mollie.com'
|
4
|
-
API_VERSION = 'v2'
|
3
|
+
API_ENDPOINT = 'https://api.mollie.com'.freeze
|
4
|
+
API_VERSION = 'v2'.freeze
|
5
5
|
|
6
|
-
MODE_TEST = 'test'
|
7
|
-
MODE_LIVE = 'live'
|
6
|
+
MODE_TEST = 'test'.freeze
|
7
|
+
MODE_LIVE = 'live'.freeze
|
8
8
|
|
9
9
|
class << self
|
10
10
|
attr_accessor :configuration
|
@@ -66,9 +66,9 @@ module Mollie
|
|
66
66
|
api_key = http_body.delete(:api_key) || query.delete(:api_key) || @api_key
|
67
67
|
api_endpoint = http_body.delete(:api_endpoint) || query.delete(:api_endpoint) || @api_endpoint
|
68
68
|
|
69
|
-
|
69
|
+
unless query.empty?
|
70
70
|
camelized_query = Util.camelize_keys(query)
|
71
|
-
path
|
71
|
+
path += "?#{build_nested_query(camelized_query)}"
|
72
72
|
end
|
73
73
|
|
74
74
|
uri = URI.parse(api_endpoint)
|
@@ -81,19 +81,19 @@ module Mollie
|
|
81
81
|
when 'GET'
|
82
82
|
request = Net::HTTP::Get.new(path)
|
83
83
|
when 'POST'
|
84
|
-
http_body.delete_if { |
|
84
|
+
http_body.delete_if { |_k, v| v.nil? }
|
85
85
|
request = Net::HTTP::Post.new(path)
|
86
86
|
request.body = Util.camelize_keys(http_body).to_json
|
87
87
|
when 'PATCH'
|
88
|
-
http_body.delete_if { |
|
88
|
+
http_body.delete_if { |_k, v| v.nil? }
|
89
89
|
request = Net::HTTP::Patch.new(path)
|
90
90
|
request.body = Util.camelize_keys(http_body).to_json
|
91
91
|
when 'DELETE'
|
92
|
-
http_body.delete_if { |
|
92
|
+
http_body.delete_if { |_k, v| v.nil? }
|
93
93
|
request = Net::HTTP::Delete.new(path)
|
94
94
|
request.body = Util.camelize_keys(http_body).to_json
|
95
95
|
else
|
96
|
-
raise Mollie::Exception
|
96
|
+
raise Mollie::Exception, "Invalid HTTP Method: #{http_method}"
|
97
97
|
end
|
98
98
|
|
99
99
|
request['Accept'] = 'application/json'
|
@@ -104,8 +104,8 @@ module Mollie
|
|
104
104
|
begin
|
105
105
|
response = client.request(request)
|
106
106
|
rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
|
107
|
-
|
108
|
-
raise Mollie::Exception
|
107
|
+
Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
|
108
|
+
raise Mollie::Exception, e.message
|
109
109
|
end
|
110
110
|
|
111
111
|
http_code = response.code.to_i
|
@@ -126,17 +126,17 @@ module Mollie
|
|
126
126
|
def build_nested_query(value, prefix = nil)
|
127
127
|
case value
|
128
128
|
when Array
|
129
|
-
value.map
|
129
|
+
value.map do |v|
|
130
130
|
build_nested_query(v, "#{prefix}[]")
|
131
|
-
|
131
|
+
end.join('&')
|
132
132
|
when Hash
|
133
|
-
value.map
|
133
|
+
value.map do |k, v|
|
134
134
|
build_nested_query(v, prefix ? "#{prefix}[#{escape(k)}]" : escape(k))
|
135
|
-
|
135
|
+
end.reject(&:empty?).join('&')
|
136
136
|
when nil
|
137
137
|
prefix
|
138
138
|
else
|
139
|
-
raise ArgumentError,
|
139
|
+
raise ArgumentError, 'value must be a Hash' if prefix.nil?
|
140
140
|
"#{prefix}=#{escape(value)}"
|
141
141
|
end
|
142
142
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module Mollie
|
2
2
|
class Customer
|
3
3
|
class Mandate < Base
|
4
|
-
STATUS_VALID =
|
5
|
-
STATUS_INVALID =
|
6
|
-
STATUS_PENDING =
|
4
|
+
STATUS_VALID = 'valid'.freeze
|
5
|
+
STATUS_INVALID = 'invalid'.freeze
|
6
|
+
STATUS_PENDING = 'pending'.freeze
|
7
7
|
|
8
8
|
attr_accessor :id,
|
9
9
|
:status,
|
@@ -14,14 +14,18 @@ module Mollie
|
|
14
14
|
:created_at,
|
15
15
|
:_links
|
16
16
|
|
17
|
-
|
17
|
+
alias links _links
|
18
18
|
|
19
19
|
def details=(details)
|
20
20
|
@details = OpenStruct.new(details) if details.is_a?(Hash)
|
21
21
|
end
|
22
22
|
|
23
23
|
def created_at=(created_at)
|
24
|
-
@created_at =
|
24
|
+
@created_at = begin
|
25
|
+
Time.parse(created_at.to_s)
|
26
|
+
rescue StandardError
|
27
|
+
nil
|
28
|
+
end
|
25
29
|
end
|
26
30
|
|
27
31
|
def valid?
|
@@ -37,7 +41,7 @@ module Mollie
|
|
37
41
|
end
|
38
42
|
|
39
43
|
def customer(options = {})
|
40
|
-
customer_id = Util.extract_id(links,
|
44
|
+
customer_id = Util.extract_id(links, 'customer')
|
41
45
|
Customer.get(customer_id, options)
|
42
46
|
end
|
43
47
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
module Mollie
|
2
2
|
class Customer
|
3
3
|
class Subscription < Base
|
4
|
-
STATUS_ACTIVE =
|
5
|
-
STATUS_PENDING =
|
6
|
-
STATUS_CANCELED =
|
7
|
-
STATUS_SUSPENDED =
|
8
|
-
STATUS_COMPLETED =
|
4
|
+
STATUS_ACTIVE = 'active'.freeze
|
5
|
+
STATUS_PENDING = 'pending'.freeze # Waiting for a valid mandate.
|
6
|
+
STATUS_CANCELED = 'canceled'.freeze
|
7
|
+
STATUS_SUSPENDED = 'suspended'.freeze # Active, but mandate became invalid.
|
8
|
+
STATUS_COMPLETED = 'completed'.freeze
|
9
9
|
|
10
10
|
attr_accessor :id,
|
11
11
|
:customer_id,
|
@@ -41,11 +41,19 @@ module Mollie
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def created_at=(created_at)
|
44
|
-
@created_at =
|
44
|
+
@created_at = begin
|
45
|
+
Time.parse(created_at.to_s)
|
46
|
+
rescue StandardError
|
47
|
+
nil
|
48
|
+
end
|
45
49
|
end
|
46
50
|
|
47
51
|
def canceled_at=(canceled_at)
|
48
|
-
@canceled_at =
|
52
|
+
@canceled_at = begin
|
53
|
+
Time.parse(canceled_at.to_s)
|
54
|
+
rescue StandardError
|
55
|
+
nil
|
56
|
+
end
|
49
57
|
end
|
50
58
|
|
51
59
|
def amount=(amount)
|
data/lib/mollie/exception.rb
CHANGED
data/lib/mollie/invoice.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
module Mollie
|
2
2
|
class Invoice < Base
|
3
|
-
STATUS_OPEN =
|
4
|
-
STATUS_PAID =
|
5
|
-
STATUS_OVERDUE =
|
3
|
+
STATUS_OPEN = 'open'.freeze
|
4
|
+
STATUS_PAID = 'paid'.freeze
|
5
|
+
STATUS_OVERDUE = 'overdue'.freeze
|
6
6
|
|
7
7
|
class Line < Base
|
8
8
|
attr_accessor :period, :description, :count, :vat_percentage, :amount
|
@@ -25,7 +25,7 @@ module Mollie
|
|
25
25
|
:lines,
|
26
26
|
:_links
|
27
27
|
|
28
|
-
|
28
|
+
alias links _links
|
29
29
|
|
30
30
|
def open?
|
31
31
|
status == STATUS_OPEN
|
@@ -52,11 +52,19 @@ module Mollie
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def issued_at=(issued_at)
|
55
|
-
@issued_at =
|
55
|
+
@issued_at = begin
|
56
|
+
Time.parse(issued_at)
|
57
|
+
rescue StandardError
|
58
|
+
nil
|
59
|
+
end
|
56
60
|
end
|
57
61
|
|
58
62
|
def due_at=(due_at)
|
59
|
-
@due_at =
|
63
|
+
@due_at = begin
|
64
|
+
Time.parse(due_at)
|
65
|
+
rescue StandardError
|
66
|
+
nil
|
67
|
+
end
|
60
68
|
end
|
61
69
|
|
62
70
|
def lines=(lines)
|
data/lib/mollie/list.rb
CHANGED
@@ -3,19 +3,19 @@ module Mollie
|
|
3
3
|
include Enumerable
|
4
4
|
|
5
5
|
attr_accessor :klass, :items, :_links
|
6
|
-
|
6
|
+
alias links _links
|
7
7
|
|
8
8
|
def initialize(list_attributes, klass)
|
9
9
|
@klass = klass
|
10
10
|
|
11
|
-
if list_attributes['_embedded']
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
list_attributes['items'] ||= if list_attributes['_embedded']
|
12
|
+
list_attributes['_embedded'].fetch(klass.resource_name, [])
|
13
|
+
else
|
14
|
+
[]
|
15
|
+
end
|
16
16
|
super list_attributes
|
17
17
|
|
18
|
-
@items =
|
18
|
+
@items = items.map do |attributes|
|
19
19
|
klass.new attributes
|
20
20
|
end
|
21
21
|
end
|
@@ -25,9 +25,7 @@ module Mollie
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def next(options = {})
|
28
|
-
if links['next'].nil?
|
29
|
-
return self.class.new({}, klass)
|
30
|
-
end
|
28
|
+
return self.class.new({}, klass) if links['next'].nil?
|
31
29
|
|
32
30
|
href = URI.parse(links['next']['href'])
|
33
31
|
query = URI.decode_www_form(href.query).to_h
|
@@ -36,9 +34,7 @@ module Mollie
|
|
36
34
|
end
|
37
35
|
|
38
36
|
def previous(options = {})
|
39
|
-
if links['previous'].nil?
|
40
|
-
return self.class.new({}, klass)
|
41
|
-
end
|
37
|
+
return self.class.new({}, klass) if links['previous'].nil?
|
42
38
|
|
43
39
|
href = URI.parse(links['previous']['href'])
|
44
40
|
query = URI.decode_www_form(href.query).to_h
|