mollie-api-ruby 2.2.0 → 2.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|