mollie-api-ruby 2.2.0 → 2.2.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 +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +15 -2
- data/examples/apis/api_docs.rb +37 -0
- data/examples/apis/connect.rb +58 -0
- data/examples/apis/customers.rb +115 -0
- data/examples/apis/invoices.rb +38 -0
- data/examples/apis/issuers.rb +35 -0
- data/examples/apis/mandates.rb +83 -0
- data/examples/apis/methods.rb +50 -0
- data/examples/apis/organizations.rb +16 -0
- data/examples/apis/payments.rb +140 -0
- data/examples/apis/permissions.rb +32 -0
- data/examples/apis/profiles.rb +126 -0
- data/examples/apis/refunds.rb +17 -0
- data/examples/apis/settlements.rb +84 -0
- data/examples/apis/subscriptions.rb +165 -0
- data/examples/config.ru +58 -0
- data/examples/public/images/collapse.gif +0 -0
- data/examples/public/images/expand.gif +0 -0
- data/examples/public/images/explorer_icons.png +0 -0
- data/examples/public/images/favicon-16x16.png +0 -0
- data/examples/public/images/favicon-32x32.png +0 -0
- data/examples/public/images/favicon.ico +0 -0
- data/examples/public/images/logo_small.png +0 -0
- data/examples/public/images/pet_store_api.png +0 -0
- data/examples/public/images/throbber.gif +0 -0
- data/examples/public/images/wordnik_api.png +0 -0
- data/examples/public/index.html +101 -0
- data/examples/public/javascripts/lib/backbone-min.js +1 -0
- data/examples/public/javascripts/lib/es5-shim.js +1 -0
- data/examples/public/javascripts/lib/handlebars-4.0.5.js +3 -0
- data/examples/public/javascripts/lib/highlight.9.1.0.pack.js +1 -0
- data/examples/public/javascripts/lib/highlight.9.1.0.pack_extended.js +1 -0
- data/examples/public/javascripts/lib/jquery-1.8.0.min.js +3 -0
- data/examples/public/javascripts/lib/jquery.ba-bbq.min.js +1 -0
- data/examples/public/javascripts/lib/jquery.slideto.min.js +1 -0
- data/examples/public/javascripts/lib/jquery.wiggle.min.js +1 -0
- data/examples/public/javascripts/lib/js-yaml.min.js +2 -0
- data/examples/public/javascripts/lib/jsoneditor.min.js +5 -0
- data/examples/public/javascripts/lib/lodash.min.js +2 -0
- data/examples/public/javascripts/lib/marked.js +1 -0
- data/examples/public/javascripts/lib/object-assign-pollyfill.js +1 -0
- data/examples/public/javascripts/lib/sanitize-html.min.js +4 -0
- data/examples/public/javascripts/lib/swagger-oauth.js +1 -0
- data/examples/public/javascripts/swagger-ui.js +25378 -0
- data/examples/public/javascripts/swagger-ui.min.js +15 -0
- data/examples/public/javascripts/swagger_docs.js +14 -0
- data/examples/public/o2c.html +20 -0
- data/examples/public/stylesheets/reset.css +1 -0
- data/examples/public/stylesheets/screen.css +1545 -0
- data/examples/public/stylesheets/swagger_docs.css +4 -0
- data/examples/public/stylesheets/typography.css +0 -0
- data/lib/mollie/api/client.rb +42 -22
- data/lib/mollie/api/client/version.rb +1 -1
- data/lib/mollie/api/object/invoice.rb +70 -0
- data/lib/mollie/api/object/method.rb +1 -0
- data/lib/mollie/api/object/organization.rb +1 -1
- data/lib/mollie/api/object/payment.rb +21 -7
- data/lib/mollie/api/object/payment/refund.rb +5 -1
- data/lib/mollie/api/resource/base.rb +6 -6
- data/lib/mollie/api/resource/invoices.rb +11 -0
- data/lib/mollie/api/resource/permissions.rb +20 -0
- data/lib/mollie/api/resource/profiles/apikeys.rb +6 -0
- data/lib/mollie/api/resource/refunds.rb +11 -0
- data/lib/mollie/api/resource/settlements.rb +8 -0
- data/lib/mollie/api/resource/settlements/payments.rb +27 -0
- data/mollie.gemspec +7 -0
- data/test/mollie/api/client_test.rb +12 -5
- data/test/mollie/api/object/invoice_test.rb +59 -0
- data/test/mollie/api/object/organization_test.rb +0 -6
- data/test/mollie/api/object/payment_test.rb +15 -0
- data/test/mollie/api/resource/invoices_test.rb +13 -0
- metadata +159 -12
- data/examples/1-new-payment.rb +0 -56
- data/examples/2-webhook-verification.rb +0 -41
- data/examples/3-return-page.rb +0 -21
- data/examples/4-ideal-payment.rb +0 -79
- data/examples/5-payments-history.rb +0 -27
- data/examples/6-list-activated-methods.rb +0 -30
- data/examples/7-refund-payment.rb +0 -40
- data/examples/app.rb +0 -58
- data/examples/orders/.gitignore +0 -1
@@ -0,0 +1,16 @@
|
|
1
|
+
class Application < Sinatra::Application
|
2
|
+
swagger_path '/v1/organizations/{id}' do
|
3
|
+
operation :get, description: 'Get organization https://www.mollie.com/en/docs/reference/organizations/get', tags: ['Organizations'] do
|
4
|
+
parameter name: :id, in: 'path', description: 'Organization id', type: :string
|
5
|
+
parameter name: :testmode, in: 'query', description: 'Test mode', type: :boolean
|
6
|
+
security api_key: []
|
7
|
+
response 200, description: 'Successful response'
|
8
|
+
response 500, description: 'Unexpected error'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
get '/v1/organizations/:id' do
|
13
|
+
organization = client.organizations.get(params[:id], testmode: params[:testmode])
|
14
|
+
JSON.pretty_generate(organization.attributes)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,140 @@
|
|
1
|
+
class Application < Sinatra::Application
|
2
|
+
swagger_schema :PaymentRequest do
|
3
|
+
property :amount, type: :decimal, description: 'Amount of money', example: 10.0
|
4
|
+
property :description, type: :string, description: 'Description', example: "My first payment"
|
5
|
+
property :redirect_url, type: :string, description: 'URL for redirection', example: "https://webshop.example.org/order/12345/"
|
6
|
+
property :webhook_url, type: :string, description: 'URL for redirection', example: "https://webshop.example.org/payments/webhook/"
|
7
|
+
property :metadata, type: :object, description: 'Extra info', example: { "order_id" => "12345" }
|
8
|
+
property :profileId, type: :object, description: 'ProfileId (Connect api only)', example: "pfl_FxPFwdxxJf"
|
9
|
+
property :testmode, type: :boolean, description: '(Connect api only)', example: true
|
10
|
+
end
|
11
|
+
|
12
|
+
swagger_schema :RefundRequest do
|
13
|
+
property :amount, type: :decimal, description: 'Amount of money', example: 10.0
|
14
|
+
property :description, type: :string, description: 'Description', example: "My first payment"
|
15
|
+
property :testmode, type: :boolean, description: 'Testmode', example: true
|
16
|
+
end
|
17
|
+
|
18
|
+
swagger_path '/v1/payments' do
|
19
|
+
operation :post, description: 'Create payment https://www.mollie.com/en/docs/reference/payments/create', tags: ['Payments'] do
|
20
|
+
security api_key: []
|
21
|
+
parameter name: :payment, in: 'body', description: 'PaymentRequest params', schema: { '$ref' => '#/definitions/PaymentRequest' }
|
22
|
+
response 200, description: 'Successful response'
|
23
|
+
response 500, description: 'Unexpected error'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
swagger_path '/v1/payments/{id}' do
|
28
|
+
operation :get, description: 'Get payment https://www.mollie.com/en/docs/reference/payments/get', tags: ['Payments'] do
|
29
|
+
parameter name: :id, in: 'path', description: 'Payment id', type: :string
|
30
|
+
parameter name: :testmode, in: 'query', description: 'Testmode', type: :boolean, default: true
|
31
|
+
security api_key: []
|
32
|
+
response 200, description: 'Successful response'
|
33
|
+
response 500, description: 'Unexpected error'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
swagger_path '/v1/payments' do
|
38
|
+
operation :get, description: 'List payments https://www.mollie.com/en/docs/reference/payments/list', tags: ['Payments'] do
|
39
|
+
parameter name: :offset, in: 'query', description: 'Offset', type: :integer
|
40
|
+
parameter name: :count, in: 'query', description: 'Count', type: :integer
|
41
|
+
parameter name: :profile_id, in: 'query', description: 'Profile ID', type: :string
|
42
|
+
parameter name: :testmode, in: 'query', description: 'Test mode', type: :boolean
|
43
|
+
security api_key: []
|
44
|
+
response 200, description: 'Successful response'
|
45
|
+
response 500, description: 'Unexpected error'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
swagger_path '/v1/payments/{payment_id}/refunds' do
|
50
|
+
operation :post, description: 'Create payment https://www.mollie.com/nl/docs/reference/refunds/create', tags: ['Payments'] do
|
51
|
+
parameter name: :payment_id, in: 'path', description: 'Payment id', type: :string
|
52
|
+
security api_key: []
|
53
|
+
parameter name: :refund, in: 'body', description: 'RefundRequest params', schema: { '$ref' => '#/definitions/RefundRequest' }
|
54
|
+
response 200, description: 'Successful response'
|
55
|
+
response 500, description: 'Unexpected error'
|
56
|
+
end
|
57
|
+
|
58
|
+
operation :get, description: 'List payment refunds https://www.mollie.com/en/docs/reference/refunds/list', tags: ['Payments'] do
|
59
|
+
parameter name: :payment_id, in: 'path', description: 'Payment id', type: :string
|
60
|
+
parameter name: :offset, in: 'query', description: 'Offset', type: :integer
|
61
|
+
parameter name: :count, in: 'query', description: 'Count', type: :integer
|
62
|
+
parameter name: :testmode, in: 'query', description: 'Testmode', type: :boolean, default: true
|
63
|
+
security api_key: []
|
64
|
+
response 200, description: 'Successful response'
|
65
|
+
response 500, description: 'Unexpected error'
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
swagger_path '/v1/payments/{payment_id}/refunds/{id}' do
|
70
|
+
operation :get, description: 'Create payment https://www.mollie.com/nl/docs/reference/refunds/get', tags: ['Payments'] do
|
71
|
+
parameter name: :payment_id, in: 'path', description: 'Payment id', type: :string
|
72
|
+
parameter name: :id, in: 'path', description: 'Refund id', type: :string
|
73
|
+
parameter name: :testmode, in: 'query', description: 'Testmode', type: :boolean, default: true
|
74
|
+
security api_key: []
|
75
|
+
response 200, description: 'Successful response'
|
76
|
+
response 500, description: 'Unexpected error'
|
77
|
+
end
|
78
|
+
|
79
|
+
operation :delete, description: 'Delete payment https://www.mollie.com/nl/docs/reference/refunds/delete', tags: ['Payments'] do
|
80
|
+
parameter name: :payment_id, in: 'path', description: 'Payment id', type: :string
|
81
|
+
parameter name: :id, in: 'path', description: 'Refund id', type: :string
|
82
|
+
parameter name: :testmode, in: 'query', description: 'Testmode', type: :boolean, default: true
|
83
|
+
security api_key: []
|
84
|
+
response 204, description: 'Successful response'
|
85
|
+
response 500, description: 'Unexpected error'
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
get '/v1/payments' do
|
90
|
+
payments = client.payments.all(params[:offset], params[:count],
|
91
|
+
profile_id: params[:profile_id],
|
92
|
+
testmode: params[:testmode]
|
93
|
+
)
|
94
|
+
|
95
|
+
JSON.pretty_generate(payments.attributes)
|
96
|
+
end
|
97
|
+
|
98
|
+
get '/v1/payments/:id' do
|
99
|
+
payment = client.payments.get(params[:id], testmode: params[:testmode])
|
100
|
+
JSON.pretty_generate(payment.attributes)
|
101
|
+
end
|
102
|
+
|
103
|
+
post '/v1/payments' do
|
104
|
+
payment = client.payments.create(
|
105
|
+
amount: json_params['amount'],
|
106
|
+
description: json_params['description'],
|
107
|
+
redirect_url: json_params['redirect_url'],
|
108
|
+
webhook_url: json_params['webhook_url'],
|
109
|
+
metadata: json_params['metadata'],
|
110
|
+
profileId: json_params['profileId'],
|
111
|
+
testmode: json_params['testmode'],
|
112
|
+
)
|
113
|
+
JSON.pretty_generate(payment.attributes)
|
114
|
+
end
|
115
|
+
|
116
|
+
post '/v1/payments/:payment_id/refunds' do
|
117
|
+
refund = client.payments_refunds.with(params[:payment_id]).create(
|
118
|
+
amount: json_params['amount'],
|
119
|
+
description: json_params['description'],
|
120
|
+
testmode: json_params['testmode']
|
121
|
+
)
|
122
|
+
JSON.pretty_generate(refund.attributes)
|
123
|
+
end
|
124
|
+
|
125
|
+
get '/v1/payments/:payment_id/refunds/:id' do
|
126
|
+
refund = client.payments_refunds.with(params[:payment_id]).get(params[:id], testmode: params[:testmode])
|
127
|
+
JSON.pretty_generate(refund.attributes)
|
128
|
+
end
|
129
|
+
|
130
|
+
delete '/v1/payments/:payment_id/refunds/:id' do
|
131
|
+
client.payments_refunds.with(params[:payment_id]).delete(params[:id], testmode: params[:testmode])
|
132
|
+
"deleted"
|
133
|
+
end
|
134
|
+
|
135
|
+
get '/v1/payments/:payment_id/refunds' do
|
136
|
+
refunds = client.payments_refunds.with(params[:payment_id]).all(params[:offset], params[:count], testmode: params[:testmode])
|
137
|
+
JSON.pretty_generate(refunds.attributes)
|
138
|
+
end
|
139
|
+
|
140
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
class Application < Sinatra::Application
|
2
|
+
swagger_path '/v1/permissions' do
|
3
|
+
operation :get, description: 'List permissions https://www.mollie.com/en/docs/reference/permissions/list', tags: ['Permissions'] do
|
4
|
+
parameter name: :offset, in: 'query', description: 'Offset', type: :integer
|
5
|
+
parameter name: :count, in: 'query', description: 'Count', type: :integer
|
6
|
+
parameter name: :testmode, in: 'query', description: 'Test mode', type: :boolean
|
7
|
+
security api_key: []
|
8
|
+
response 200, description: 'Successful response'
|
9
|
+
response 500, description: 'Unexpected error'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
swagger_path '/v1/permissions/{id}' do
|
14
|
+
operation :get, description: 'Get permission https://www.mollie.com/en/docs/reference/permissions/get', tags: ['Permissions'] do
|
15
|
+
parameter name: :id, in: 'path', description: 'Permission id', type: :string
|
16
|
+
parameter name: :testmode, in: 'query', description: 'Test mode', type: :boolean
|
17
|
+
security api_key: []
|
18
|
+
response 200, description: 'Successful response'
|
19
|
+
response 500, description: 'Unexpected error'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
get '/v1/permissions' do
|
24
|
+
permissions = client.permissions.all(params[:offset], params[:count], testmode: params[:testmode])
|
25
|
+
JSON.pretty_generate(permissions.attributes)
|
26
|
+
end
|
27
|
+
|
28
|
+
get '/v1/permissions/:id' do
|
29
|
+
permission = client.permissions.get(params[:id], testmode: params[:testmode])
|
30
|
+
JSON.pretty_generate(permission.attributes)
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,126 @@
|
|
1
|
+
class Application < Sinatra::Application
|
2
|
+
swagger_schema :ProfileRequest do
|
3
|
+
property :name, type: :string, description: 'Name', example: "My website name"
|
4
|
+
property :website, type: :string, description: 'Website', example: "#{Ngrok::Tunnel.ngrok_url_https}"
|
5
|
+
property :email, type: :string, description: 'Email', example: "info@mywebsite.com"
|
6
|
+
property :phone, type: :string, description: 'Phone', example: "31123456789"
|
7
|
+
property :categoryCode, type: :integer, description: 'Category code', example: "5399"
|
8
|
+
property :mode, type: :string, description: 'Mode (live or test)', example: "test"
|
9
|
+
end
|
10
|
+
|
11
|
+
swagger_path '/v1/profiles' do
|
12
|
+
operation :post, description: 'https://www.mollie.com/en/docs/reference/profiles/create', tags: ['Profiles'] do
|
13
|
+
security api_key: []
|
14
|
+
parameter name: :profile, in: 'body', description: 'ProfileRequest params', schema: { '$ref' => '#/definitions/ProfileRequest' }
|
15
|
+
response 200, description: 'Successful response'
|
16
|
+
response 500, description: 'Unexpected error'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
swagger_path '/v1/profiles' do
|
21
|
+
operation :get, description: 'https://www.mollie.com/en/docs/reference/profiles/list', tags: ['Profiles'] do
|
22
|
+
parameter name: :offset, in: 'query', description: 'Offset', type: :integer
|
23
|
+
parameter name: :count, in: 'query', description: 'Count', type: :integer
|
24
|
+
security api_key: []
|
25
|
+
response 200, description: 'Successful response'
|
26
|
+
response 500, description: 'Unexpected error'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
swagger_path '/v1/profiles/{id}' do
|
31
|
+
operation :get, description: 'https://www.mollie.com/en/docs/reference/profiles/get', tags: ['Profiles'] do
|
32
|
+
parameter name: :id, in: 'path', description: 'Profile id', type: :string, default: 'pfl_v9hTwCvYqw'
|
33
|
+
security api_key: []
|
34
|
+
response 200, description: 'Successful response'
|
35
|
+
response 500, description: 'Unexpected error'
|
36
|
+
end
|
37
|
+
operation :patch, description: 'https://www.mollie.com/en/docs/reference/profiles/create', tags: ['Profiles'] do
|
38
|
+
parameter name: :id, in: 'path', description: 'Profile id', type: :string, default: 'pfl_v9hTwCvYqw'
|
39
|
+
security api_key: []
|
40
|
+
parameter name: :profile, in: 'body', description: 'ProfileRequest params', schema: { '$ref' => '#/definitions/ProfileRequest' }
|
41
|
+
response 200, description: 'Successful response'
|
42
|
+
response 500, description: 'Unexpected error'
|
43
|
+
end
|
44
|
+
operation :delete, description: 'https://www.mollie.com/en/docs/reference/profiles/delete', tags: ['Profiles'] do
|
45
|
+
parameter name: :id, in: 'path', description: 'Profile id', type: :string, default: 'pfl_v9hTwCvYqw'
|
46
|
+
security api_key: []
|
47
|
+
response 200, description: 'Successful response'
|
48
|
+
response 500, description: 'Unexpected error'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
swagger_path '/v1/profiles/{profile_id}/apikeys' do
|
53
|
+
operation :get, description: 'https://www.mollie.com/en/docs/reference/profiles/api-keys/list', tags: ['Profiles'] do
|
54
|
+
parameter name: :profile_id, in: 'path', description: 'Profile id', type: :string, default: 'pfl_v9hTwCvYqw'
|
55
|
+
security api_key: []
|
56
|
+
response 200, description: 'Successful response'
|
57
|
+
response 500, description: 'Unexpected error'
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
swagger_path '/v1/profiles/{profile_id}/apikeys/{mode}' do
|
62
|
+
operation :get, description: 'https://www.mollie.com/en/docs/reference/profiles/api-keys/list', tags: ['Profiles'] do
|
63
|
+
parameter name: :profile_id, in: 'path', description: 'Profile id', type: :string, default: 'pfl_v9hTwCvYqw'
|
64
|
+
parameter name: :mode, in: 'path', description: 'Mode (live or test)', type: :string, default: 'test'
|
65
|
+
security api_key: []
|
66
|
+
response 200, description: 'Successful response'
|
67
|
+
response 500, description: 'Unexpected error'
|
68
|
+
end
|
69
|
+
operation :post, description: 'https://www.mollie.com/en/docs/reference/profiles/api-keys/reset', tags: ['Profiles'] do
|
70
|
+
parameter name: :profile_id, in: 'path', description: 'Profile id', type: :string, default: 'pfl_v9hTwCvYqw'
|
71
|
+
parameter name: :mode, in: 'path', description: 'Mode (live or test)', type: :string, default: 'test'
|
72
|
+
security api_key: []
|
73
|
+
response 200, description: 'Successful response'
|
74
|
+
response 500, description: 'Unexpected error'
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
get '/v1/profiles' do
|
79
|
+
profiles = client.profiles.all(params[:offset], params[:count])
|
80
|
+
JSON.pretty_generate(profiles.attributes)
|
81
|
+
end
|
82
|
+
|
83
|
+
get '/v1/profiles/:id' do
|
84
|
+
profile = client.profiles.get(params[:id])
|
85
|
+
JSON.pretty_generate(profile.attributes)
|
86
|
+
end
|
87
|
+
|
88
|
+
post '/v1/profiles' do
|
89
|
+
profile = client.profiles.create(
|
90
|
+
name: json_params['name'],
|
91
|
+
website: json_params['website'],
|
92
|
+
email: json_params['email'],
|
93
|
+
phone: json_params['phone'],
|
94
|
+
categoryCode: json_params['categoryCode'],
|
95
|
+
mode: json_params['mode'],
|
96
|
+
)
|
97
|
+
JSON.pretty_generate(profile.attributes)
|
98
|
+
end
|
99
|
+
|
100
|
+
patch '/v1/profiles/:id' do
|
101
|
+
profile = client.profiles.update(params[:id],
|
102
|
+
name: json_params['name'],
|
103
|
+
website: json_params['website'],
|
104
|
+
email: json_params['email'],
|
105
|
+
phone: json_params['phone'],
|
106
|
+
categoryCode: json_params['categoryCode'],
|
107
|
+
mode: json_params['mode'],
|
108
|
+
)
|
109
|
+
JSON.pretty_generate(profile.attributes)
|
110
|
+
end
|
111
|
+
|
112
|
+
get '/v1/profiles/:profile_id/apikeys' do
|
113
|
+
api_keys = client.profiles_api_keys.with(params[:profile_id]).all
|
114
|
+
JSON.pretty_generate(api_keys.attributes)
|
115
|
+
end
|
116
|
+
|
117
|
+
get '/v1/profiles/:profile_id/apikeys/:mode' do
|
118
|
+
api_key = client.profiles_api_keys.with(params[:profile_id]).get(params[:mode])
|
119
|
+
JSON.pretty_generate(api_key.attributes)
|
120
|
+
end
|
121
|
+
|
122
|
+
post '/v1/profiles/:profile_id/apikeys/:mode' do
|
123
|
+
payment = client.profiles_api_keys.with(params[:profile_id]).create(params[:mode])
|
124
|
+
JSON.pretty_generate(payment.attributes)
|
125
|
+
end
|
126
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class Application < Sinatra::Application
|
2
|
+
swagger_path '/v1/refunds' do
|
3
|
+
operation :get, description: 'List refunds https://www.mollie.com/en/docs/reference/refunds/list', tags: ['Refunds'] do
|
4
|
+
parameter name: :offset, in: 'query', description: 'Offset', type: :integer
|
5
|
+
parameter name: :count, in: 'query', description: 'Count', type: :integer
|
6
|
+
parameter name: :testmode, in: 'query', description: 'Test mode', type: :boolean
|
7
|
+
security api_key: []
|
8
|
+
response 200, description: 'Successful response'
|
9
|
+
response 500, description: 'Unexpected error'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
get '/v1/refunds' do
|
14
|
+
refunds = client.refunds.all(params[:offset], params[:limit], testmode: params[:test_mode])
|
15
|
+
JSON.pretty_generate(refunds.attributes)
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
class Application < Sinatra::Application
|
2
|
+
swagger_path '/v1/settlements' do
|
3
|
+
operation :get, description: 'List settlements https://www.mollie.com/en/docs/reference/settlements/list', tags: ['Settlements'] do
|
4
|
+
parameter name: :reference, in: 'query', description: 'Issuer id', type: :string, example: "1182161.1506.02"
|
5
|
+
parameter name: :offset, in: 'query', description: 'Offset', type: :integer
|
6
|
+
parameter name: :count, in: 'query', description: 'Count', type: :integer
|
7
|
+
parameter name: :testmode, in: 'query', description: 'Test mode', type: :boolean
|
8
|
+
security api_key: []
|
9
|
+
response 200, description: 'Successful response'
|
10
|
+
response 500, description: 'Unexpected error'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
swagger_path '/v1/settlements/{id}' do
|
15
|
+
operation :get, description: 'Get settlement https://www.mollie.com/en/docs/reference/settlements/get', tags: ['Settlements'] do
|
16
|
+
parameter name: :id, in: 'path', description: 'Issuer id', type: :string, example: "stl_jDk30akdN"
|
17
|
+
parameter name: :testmode, in: 'query', description: 'Test mode', type: :boolean
|
18
|
+
security api_key: []
|
19
|
+
response 200, description: 'Successful response'
|
20
|
+
response 500, description: 'Unexpected error'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
swagger_path '/v1/settlements/next' do
|
25
|
+
operation :get, description: 'Next settlement https://www.mollie.com/en/docs/reference/settlements/next', tags: ['Settlements'] do
|
26
|
+
parameter name: :testmode, in: 'query', description: 'Test mode', type: :boolean
|
27
|
+
security api_key: []
|
28
|
+
response 200, description: 'Successful response'
|
29
|
+
response 500, description: 'Unexpected error'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
swagger_path '/v1/settlements/open' do
|
34
|
+
operation :get, description: 'Open settlement https://www.mollie.com/en/docs/reference/settlements/open', tags: ['Settlements'] do
|
35
|
+
parameter name: :testmode, in: 'query', description: 'Test mode', type: :boolean
|
36
|
+
security api_key: []
|
37
|
+
response 200, description: 'Successful response'
|
38
|
+
response 500, description: 'Unexpected error'
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
swagger_path '/v1/settlements/{settlement_id}/payments' do
|
43
|
+
operation :get, description: 'List settlement payments https://www.mollie.com/nl/docs/reference/settlements/list-payments', tags: ['Settlements'] do
|
44
|
+
parameter name: :settlement_id, in: 'path', description: 'Settlement id', type: :string, example: "stl_jDk30akdN"
|
45
|
+
parameter name: :offset, in: 'query', description: 'Offset', type: :integer
|
46
|
+
parameter name: :count, in: 'query', description: 'Count', type: :integer
|
47
|
+
parameter name: :testmode, in: 'query', description: 'Test mode', type: :boolean
|
48
|
+
security api_key: []
|
49
|
+
response 200, description: 'Successful response'
|
50
|
+
response 500, description: 'Unexpected error'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
get '/v1/settlements' do
|
55
|
+
settlements = client.settlements.all(params[:offset], params[:count],
|
56
|
+
reference: params[:reference],
|
57
|
+
testmode: params[:testmode]
|
58
|
+
)
|
59
|
+
JSON.pretty_generate(settlements.attributes)
|
60
|
+
end
|
61
|
+
|
62
|
+
get '/v1/settlements/:id' do
|
63
|
+
settlement = client.settlements.get(params[:id], testmode: params[:testmode])
|
64
|
+
JSON.pretty_generate(settlement.attributes)
|
65
|
+
end
|
66
|
+
|
67
|
+
get '/v1/settlements/next' do
|
68
|
+
settlement = client.settlements.next(testmode: params[:testmode])
|
69
|
+
JSON.pretty_generate(settlement.attributes)
|
70
|
+
end
|
71
|
+
|
72
|
+
get '/v1/settlements/open' do
|
73
|
+
settlement = client.settlements.open(testmode: params[:testmode])
|
74
|
+
JSON.pretty_generate(settlement.attributes)
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
get '/v1/settlements/:settlement_id/payments' do
|
79
|
+
payments = client.settlements_payments.with(params[:settlement_id]).all(params[:offset], params[:count], testmode: params[:testmode])
|
80
|
+
JSON.pretty_generate(payments.attributes)
|
81
|
+
end
|
82
|
+
|
83
|
+
|
84
|
+
end
|
@@ -0,0 +1,165 @@
|
|
1
|
+
class Application < Sinatra::Application
|
2
|
+
swagger_schema :FirstPaymentRequest do
|
3
|
+
property :amount, type: :decimal, description: 'Amount of money', example: 0.01
|
4
|
+
property :customer_id, type: :string, description: 'Customer id', example: "cst_GUvJFqwVCD"
|
5
|
+
property :description, type: :string, description: 'Description', example: "My first payment"
|
6
|
+
property :recurring_type, type: :string, description: 'Recurring type', example: "first"
|
7
|
+
property :redirect_url, type: :string, description: 'URL for redirection', example: "https://webshop.example.org/order/12345/"
|
8
|
+
property :webhook_url, type: :string, description: 'URL for redirection', example: "https://webshop.example.org/payments/webhook/"
|
9
|
+
property :metadata, type: :object, description: 'Extra info', example: { "order_id" => "12345" }
|
10
|
+
property :testmode, type: :boolean, description: '(Connect api only)', example: true
|
11
|
+
end
|
12
|
+
|
13
|
+
swagger_schema :OnDemandPaymentRequest do
|
14
|
+
property :amount, type: :decimal, description: 'Amount of money', example: 25.0
|
15
|
+
property :customer_id, type: :string, description: 'Customer id', example: "cst_GUvJFqwVCD"
|
16
|
+
property :description, type: :string, description: 'Description', example: "Monthly payment"
|
17
|
+
property :recurring_type, type: :string, description: 'Recurring type', example: "recurring"
|
18
|
+
property :redirect_url, type: :string, description: 'URL for redirection', example: "https://webshop.example.org/order/12345/"
|
19
|
+
property :webhook_url, type: :string, description: 'URL for redirection', example: "https://webshop.example.org/payments/webhook/"
|
20
|
+
property :metadata, type: :object, description: 'Extra info', example: { "order_id" => "12345" }
|
21
|
+
property :testmode, type: :boolean, description: '(Connect api only)', example: true
|
22
|
+
end
|
23
|
+
|
24
|
+
swagger_schema :SubscriptionRequest do
|
25
|
+
property :amount, type: :decimal, description: 'Amount of money', example: 25.0
|
26
|
+
property :times, type: :integer, description: 'Times', example: "10"
|
27
|
+
property :interval, type: :string, description: 'Interval', example: "1 month"
|
28
|
+
property :start_date, type: :string, description: 'Start date', example: Time.now.strftime("%Y-%m-%d")
|
29
|
+
property :description, type: :string, description: 'Description', example: "Monthly subscription"
|
30
|
+
property :method, type: :object, description: 'Method', example: "directdebit"
|
31
|
+
property :webhook_url, type: :string, description: 'URL for redirection', example: "https://webshop.example.org/payments/webhook/"
|
32
|
+
property :testmode, type: :boolean, description: '(Connect api only)', example: true
|
33
|
+
end
|
34
|
+
|
35
|
+
swagger_path '/v1/subscriptions/first_payment' do
|
36
|
+
operation :post, description: 'https://www.mollie.com/en/docs/recurring#first-payment', tags: ['Subscriptions'] do
|
37
|
+
security api_key: []
|
38
|
+
parameter name: :payment, in: 'body', description: 'PaymentRequest params', schema: { '$ref' => '#/definitions/OnDemandPaymentRequest' }
|
39
|
+
response 200, description: 'Successful response'
|
40
|
+
response 500, description: 'Unexpected error'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
swagger_path '/v1/subscriptions/mandates/{customer_id}' do
|
45
|
+
operation :get, description: 'List mandates', tags: ['Subscriptions'] do
|
46
|
+
parameter name: :customer_id, in: 'path', description: 'Customer id', type: :string, default: 'cst_GUvJFqwVCD'
|
47
|
+
parameter name: :testmode, in: 'query', description: 'Testmode', type: :boolean, default: true
|
48
|
+
security api_key: []
|
49
|
+
response 200, description: 'Successful response'
|
50
|
+
response 500, description: 'Unexpected error'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
swagger_path '/v1/subscriptions/on_demand' do
|
55
|
+
operation :post, description: 'https://www.mollie.com/en/docs/recurring#on-demand', tags: ['Subscriptions'] do
|
56
|
+
parameter name: :payment, in: 'body', description: 'PaymentRequest params', schema: { '$ref' => '#/definitions/OnDemandPaymentRequest' }
|
57
|
+
security api_key: []
|
58
|
+
response 200, description: 'Successful response'
|
59
|
+
response 500, description: 'Unexpected error'
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
swagger_path '/v1/customers/{customer_id}/subscriptions' do
|
64
|
+
operation :get, description: 'https://www.mollie.com/en/docs/reference/subscriptions/get', tags: ['Subscriptions'] do
|
65
|
+
parameter name: :customer_id, in: 'path', description: 'Customer id', type: :string, default: 'cst_GUvJFqwVCD'
|
66
|
+
parameter name: :offset, in: 'query', description: 'Offset', type: :integer
|
67
|
+
parameter name: :count, in: 'query', description: 'Count', type: :integer
|
68
|
+
parameter name: :testmode, in: 'query', description: 'Testmode', type: :boolean, default: true
|
69
|
+
security api_key: []
|
70
|
+
response 200, description: 'Successful response'
|
71
|
+
response 500, description: 'Unexpected error'
|
72
|
+
end
|
73
|
+
|
74
|
+
operation :post, description: 'https://www.mollie.com/en/docs/recurring#subscriptions', tags: ['Subscriptions'] do
|
75
|
+
parameter name: :customer_id, in: 'path', description: 'Customer id', type: :string, default: 'cst_GUvJFqwVCD'
|
76
|
+
parameter name: :payment, in: 'body', description: 'PaymentRequest params', schema: { '$ref' => '#/definitions/SubscriptionRequest' }
|
77
|
+
security api_key: []
|
78
|
+
response 200, description: 'Successful response'
|
79
|
+
response 500, description: 'Unexpected error'
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
swagger_path '/v1/customers/{customer_id}/subscriptions/{id}' do
|
84
|
+
operation :get, description: 'https://www.mollie.com/en/docs/reference/subscriptions/get', tags: ['Subscriptions'] do
|
85
|
+
parameter name: :customer_id, in: 'path', description: 'Customer id', type: :string, default: 'cst_GUvJFqwVCD'
|
86
|
+
parameter name: :id, in: 'path', description: 'Subscription id', type: :string, default: 'sub_qte7Jyfc5B'
|
87
|
+
parameter name: :offset, in: 'query', description: 'Offset', type: :integer
|
88
|
+
parameter name: :count, in: 'query', description: 'Count', type: :integer
|
89
|
+
parameter name: :testmode, in: 'query', description: 'Testmode', type: :boolean, default: true
|
90
|
+
security api_key: []
|
91
|
+
response 200, description: 'Successful response'
|
92
|
+
response 500, description: 'Unexpected error'
|
93
|
+
end
|
94
|
+
operation :delete, description: 'https://www.mollie.com/en/docs/reference/subscriptions/delete', tags: ['Subscriptions'] do
|
95
|
+
parameter name: :customer_id, in: 'path', description: 'Customer id', type: :string, default: 'cst_GUvJFqwVCD'
|
96
|
+
parameter name: :id, in: 'path', description: 'Subscription id', type: :string, default: 'sub_qte7Jyfc5B'
|
97
|
+
parameter name: :testmode, in: 'query', description: 'Testmode', type: :boolean, default: true
|
98
|
+
security api_key: []
|
99
|
+
response 200, description: 'Successful response'
|
100
|
+
response 500, description: 'Unexpected error'
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
post '/v1/subscriptions/first_payment' do
|
105
|
+
payment = client.payments.create(
|
106
|
+
amount: json_params['amount'],
|
107
|
+
customer_id: json_params['customer_id'],
|
108
|
+
description: json_params['description'],
|
109
|
+
redirect_url: json_params['redirect_url'],
|
110
|
+
recurring_type: "first",
|
111
|
+
webhook_url: json_params['webhook_url'],
|
112
|
+
metadata: json_params['metadata'],
|
113
|
+
testmode: json_params['testmode'],
|
114
|
+
)
|
115
|
+
JSON.pretty_generate(payment.attributes)
|
116
|
+
end
|
117
|
+
|
118
|
+
get '/v1/subscriptions/mandates/:customer_id' do
|
119
|
+
mandates = client.customers_mandates.with(params[:customer_id]).all
|
120
|
+
JSON.pretty_generate(mandates.attributes)
|
121
|
+
end
|
122
|
+
|
123
|
+
post '/v1/subscriptions/on_demand' do
|
124
|
+
payment = client.payments.create(
|
125
|
+
amount: json_params['amount'],
|
126
|
+
customer_id: json_params['customer_id'],
|
127
|
+
description: json_params['description'],
|
128
|
+
redirect_url: json_params['redirect_url'],
|
129
|
+
recurring_type: "recurring",
|
130
|
+
webhook_url: json_params['webhook_url'],
|
131
|
+
metadata: json_params['metadata'],
|
132
|
+
testmode: json_params['testmode'],
|
133
|
+
)
|
134
|
+
JSON.pretty_generate(payment.attributes)
|
135
|
+
end
|
136
|
+
|
137
|
+
get '/v1/customers/:customer_id/subscriptions' do
|
138
|
+
subscriptions = client.customers_subscriptions.with(params[:customer_id]).all(params[:offset], params[:count], testmode: params[:testmode])
|
139
|
+
JSON.pretty_generate(subscriptions.attributes)
|
140
|
+
end
|
141
|
+
|
142
|
+
get '/v1/customers/:customer_id/subscriptions/:id' do
|
143
|
+
payment = client.customers_subscriptions.with(params[:customer_id]).get(params[:id], testmode: params[:testmode])
|
144
|
+
JSON.pretty_generate(payment.attributes)
|
145
|
+
end
|
146
|
+
|
147
|
+
post '/v1/customers/:customer_id/subscriptions' do
|
148
|
+
subscription = client.customers_subscriptions.with(params[:customer_id]).create(
|
149
|
+
amount: json_params['amount'],
|
150
|
+
times: json_params['times'],
|
151
|
+
interval: json_params['interval'],
|
152
|
+
start_date: json_params['start_date'],
|
153
|
+
description: json_params["description"],
|
154
|
+
method: json_params['method'],
|
155
|
+
webhook_url: json_params['webhook_url'],
|
156
|
+
testmode: json_params['testmode'],
|
157
|
+
)
|
158
|
+
JSON.pretty_generate(subscription.attributes)
|
159
|
+
end
|
160
|
+
|
161
|
+
delete '/v1/customers/:customer_id/subscriptions/:id' do
|
162
|
+
client.customers_subscriptions.with(params[:customer_id]).delete(params[:id], testmode: params[:testmode])
|
163
|
+
"deleted"
|
164
|
+
end
|
165
|
+
end
|