mollie-api-ruby 4.4.1 → 4.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd9eb0364673c38f37d4440e31e8b5544e31e8b60b74131f05132f8f56d49901
4
- data.tar.gz: 56be0271a4440232f20287241d961f6d63e56f73d2a2d490d8825513860d2ca8
3
+ metadata.gz: 077c3341a3246c466e7d7d62d32bd68da1957af6c3c646fdaffcda51697efb68
4
+ data.tar.gz: b5731818494fb85b6c4c088ea1e4bbfa1d0ecbd9ed3e56d41d5736c3af2d5e11
5
5
  SHA512:
6
- metadata.gz: 840f5b3bd2a32a0ab3628b84a8c8dc17b246e5bc646ec0130a1d93f02c14d859a10ba2d436daea70b3bbe674137591d1a13c4c5decf70ac0628f55469d5eb7a1
7
- data.tar.gz: b633b24525f7ce2a335a740a05a368a8bf60a8f3834ca830376fba66800587017ab8f566d048e170303b73873a965b4083b12bbbf5819c126eb82d4e57ceb268
6
+ metadata.gz: 9498ca7ba156382ad00369ccff33e40018580cd73ba5bfc5a3922262c2627bef527f61532f0f05b35e87c260e5177d297376b5fca96873fbe83605d632808c26
7
+ data.tar.gz: e5bd2c61d222ba1f13de30565977fd2d40a08f165eebbb45b8890fff5b76d19c3741ecb00dac98740215e9576bc9a80b78d2357ff4393e4034699e2ab4d29bef
@@ -62,7 +62,12 @@ module Mollie
62
62
  end
63
63
 
64
64
  def perform_http_call(http_method, api_method, id = nil, http_body = {}, query = {})
65
- path = "/#{API_VERSION}/#{api_method}/#{id}".chomp('/')
65
+ path = if api_method.start_with?(API_ENDPOINT)
66
+ URI.parse(api_method).path
67
+ else
68
+ "/#{API_VERSION}/#{api_method}/#{id}".chomp('/')
69
+ end
70
+
66
71
  api_key = http_body.delete(:api_key) || query.delete(:api_key) || @api_key
67
72
  api_endpoint = http_body.delete(:api_endpoint) || query.delete(:api_endpoint) || @api_endpoint
68
73
 
@@ -84,6 +84,13 @@ module Mollie
84
84
  Customer.get(customer_id, options)
85
85
  end
86
86
 
87
+ def payments(options = {})
88
+ resource_url = Util.extract_url(links, 'payments')
89
+ return if resource_url.nil?
90
+ response = Mollie::Client.instance.perform_http_call('GET', resource_url, nil, {}, options)
91
+ Mollie::List.new(response, Payment)
92
+ end
93
+
87
94
  def metadata=(metadata)
88
95
  @metadata = OpenStruct.new(metadata) if metadata.is_a?(Hash)
89
96
  end
@@ -1,3 +1,3 @@
1
1
  module Mollie
2
- VERSION = '4.4.1'.freeze
2
+ VERSION = '4.5.0'.freeze
3
3
  end
@@ -0,0 +1,45 @@
1
+ {
2
+ "resource": "subscription",
3
+ "id": "sub_8JfGzs6v3K",
4
+ "mode": "live",
5
+ "createdAt": "2016-06-01T12:23:34+00:00",
6
+ "status": "active",
7
+ "amount": {
8
+ "value": "25.00",
9
+ "currency": "EUR"
10
+ },
11
+ "times": 4,
12
+ "timesRemaining": 4,
13
+ "interval": "3 months",
14
+ "startDate": "2016-06-01",
15
+ "nextPaymentDate": "2016-09-01",
16
+ "description": "Quarterly payment",
17
+ "method": null,
18
+ "mandateId": "mdt_aGQNkteF6w",
19
+ "webhookUrl": "https://webshop.example.org/payments/webhook",
20
+ "metadata": {
21
+ "plan": "small"
22
+ },
23
+ "_links": {
24
+ "self": {
25
+ "href": "https://api.mollie.com/v2/customers/cst_8wmqcHMN4U/subscriptions/sub_8JfGzs6v3K",
26
+ "type": "application/hal+json"
27
+ },
28
+ "customer": {
29
+ "href": "https://api.mollie.com/v2/customers/cst_8wmqcHMN4U",
30
+ "type": "application/hal+json"
31
+ },
32
+ "payments": {
33
+ "href": "https://api.mollie.com/v2/customers/cst_8wmqcHMN4U/subscriptions/sub_8JfGzs6v3K/payments",
34
+ "type": "application/hal+json"
35
+ },
36
+ "profile": {
37
+ "href": "https://api.mollie.com/v2/profiles/pfl_URR55HPMGx",
38
+ "type": "application/hal+json"
39
+ },
40
+ "documentation": {
41
+ "href": "https://docs.mollie.com/reference/v2/subscriptions-api/get-subscription",
42
+ "type": "text/html"
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "_embedded": {
3
+ "payments": [
4
+ {
5
+ "resource": "payment",
6
+ "id": "tr_DtKxVP2AgW",
7
+ "mode": "live",
8
+ "createdAt": "2018-09-19T12:49:52+00:00",
9
+ "amount": {
10
+ "value": "10.00",
11
+ "currency": "EUR"
12
+ },
13
+ "description": "Some subscription 19 sep. 2018",
14
+ "method": "directdebit",
15
+ "metadata": null,
16
+ "status": "pending",
17
+ "isCancelable": true,
18
+ "expiresAt": "2019-09-19T12:49:52+00:00",
19
+ "locale": "nl_NL",
20
+ "profileId": "pfl_URR55HPMGx",
21
+ "customerId": "cst_8wmqcHMN4U",
22
+ "mandateId": "mdt_aGQNkteF6w",
23
+ "subscriptionId": "sub_8JfGzs6v3K",
24
+ "sequenceType": "recurring",
25
+ "redirectUrl": null,
26
+ "webhookUrl": "https://example.org/webhook",
27
+ "settlementAmount": {
28
+ "value": "10.00",
29
+ "currency": "EUR"
30
+ },
31
+ "details": {
32
+ "transferReference": "SD67-6850-2204-6029",
33
+ "creditorIdentifier": "NL08ZZZ502057730000",
34
+ "consumerName": "Customer A",
35
+ "consumerAccount": "NL50INGB0006588912",
36
+ "consumerBic": "INGBNL2A",
37
+ "dueDate": "2018-09-21",
38
+ "signatureDate": "2018-09-19"
39
+ },
40
+ "_links": {
41
+ "self": {
42
+ "href": "https://api.mollie.com/v2/payments/tr_DtKxVP2AgW",
43
+ "type": "application/hal+json"
44
+ },
45
+ "checkout": null,
46
+ "customer": {
47
+ "href": "https://api.mollie.com/v2/customers/cst_8wmqcHMN4U",
48
+ "type": "application/hal+json"
49
+ },
50
+ "mandate": {
51
+ "href": "https://api.mollie.com/v2/customers/cst_8wmqcHMN4U/mandates/mdt_aGQNkteF6w",
52
+ "type": "application/hal+json"
53
+ },
54
+ "subscription": {
55
+ "href": "https://api.mollie.com/v2/customers/cst_8wmqcHMN4U/subscriptions/sub_8JfGzs6v3K",
56
+ "type": "application/hal+json"
57
+ }
58
+ }
59
+ }
60
+ ]
61
+ },
62
+ "count": 1,
63
+ "_links": {
64
+ "documentation": {
65
+ "href": "https://docs.mollie.com/reference/v2/subscriptions-api/list-subscriptions-payments",
66
+ "type": "text/html"
67
+ },
68
+ "self": {
69
+ "href": "https://api.mollie.com/v2/customers/cst_8wmqcHMN4U/subscriptions/sub_8JfGzs6v3K/payments?limit=50",
70
+ "type": "application/hal+json"
71
+ },
72
+ "previous": null,
73
+ "next": null
74
+ }
75
+ }
@@ -143,6 +143,20 @@ module Mollie
143
143
  assert_equal 42.10, subscription.application_fee.amount.value
144
144
  assert_equal'EUR', subscription.application_fee.amount.currency
145
145
  end
146
+
147
+ def test_get_payments
148
+ stub_request(:get, 'https://api.mollie.com/v2/customers/cst_8wmqcHMN4U/subscriptions/sub_8JfGzs6v3K')
149
+ .to_return(status: 200, body: read_fixture('subscriptions/get.json'), headers: {})
150
+
151
+ stub_request(:get, 'https://api.mollie.com/v2/customers/cst_8wmqcHMN4U/subscriptions/sub_8JfGzs6v3K/payments')
152
+ .to_return(status: 200, body: read_fixture('subscriptions/get_payments.json'), headers: {})
153
+
154
+ subscription = Customer::Subscription.get('sub_8JfGzs6v3K', customer_id: 'cst_8wmqcHMN4U')
155
+ payments = subscription.payments
156
+
157
+ assert_equal payments.klass, Payment
158
+ assert_equal payments.first.id, 'tr_DtKxVP2AgW'
159
+ end
146
160
  end
147
161
  end
148
162
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mollie-api-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.1
4
+ version: 4.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mollie B.V.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-12 00:00:00.000000000 Z
11
+ date: 2019-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -222,6 +222,8 @@ files:
222
222
  - test/fixtures/shipments/get.json
223
223
  - test/fixtures/shipments/list.json
224
224
  - test/fixtures/shipments/update.json
225
+ - test/fixtures/subscriptions/get.json
226
+ - test/fixtures/subscriptions/get_payments.json
225
227
  - test/helper.rb
226
228
  - test/mollie/amount_test.rb
227
229
  - test/mollie/base_test.rb
@@ -278,6 +280,8 @@ summary: Official Mollie API Client for Ruby
278
280
  test_files:
279
281
  - test/fixtures/captures/get.json
280
282
  - test/fixtures/captures/list.json
283
+ - test/fixtures/subscriptions/get.json
284
+ - test/fixtures/subscriptions/get_payments.json
281
285
  - test/fixtures/shipments/get.json
282
286
  - test/fixtures/shipments/create.json
283
287
  - test/fixtures/shipments/update.json