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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d6b6f21eeda06bcb33555aa029fe76466497263
|
4
|
+
data.tar.gz: 64aadca75fd234e1df340843b1f92627ffa75a05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dac9bb4f03cd09e80eeab7fd0af5ed5f13cc3a3bdabbc71176ab125e829f6b7634512f4afd849dc75f482125687d80db9dbe481e87835ddccc74f7e7460783e6
|
7
|
+
data.tar.gz: 29dca80e86f9876f1512c76b3a3f872c27e55c5eef8a369b0e08f2edbe97b700a5ca7ce95852a101c4a50906fdfff3fa2ee02b53c80d42054e978541031eabbb
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,12 @@
|
|
4
4
|
|
5
5
|
All notable changes to this project will be documented in this file.
|
6
6
|
|
7
|
+
#### 2.2.1 - 2017-09-13
|
8
|
+
- Added support for gift card method.
|
9
|
+
- Added support for `invoice` endpoint.
|
10
|
+
- Improved support for `refunds` endpoint.
|
11
|
+
- Added and updated examples.
|
12
|
+
|
7
13
|
#### 2.2.0 - 2017-04-21
|
8
14
|
- Add support for organizations, permissions, profiles, settlement and profiles/apikeys resources ([#54](https://github.com/mollie/mollie-api-ruby/issues/54)).
|
9
15
|
- Remove `jruby` from the build.
|
data/README.md
CHANGED
@@ -83,14 +83,27 @@ refund = mollie.payments_refunds.with(payment).create
|
|
83
83
|
|
84
84
|
## Examples ##
|
85
85
|
|
86
|
-
|
86
|
+
In order to run the examples first run `bundle install`
|
87
87
|
|
88
88
|
```
|
89
89
|
$ cd mollie-api-ruby
|
90
|
-
$
|
90
|
+
$ bundle install
|
91
|
+
$ cd examples
|
92
|
+
$ rackup
|
91
93
|
```
|
92
94
|
|
93
95
|
## API documentation ##
|
96
|
+
If you wish to learn more about the Ruby API, download the source code and run the Example app as follows:
|
97
|
+
|
98
|
+
```
|
99
|
+
$ git clone git@github.com:mollie/mollie-api-ruby.git
|
100
|
+
$ cd mollie-api-ruby
|
101
|
+
$ bundle
|
102
|
+
$ cd examples
|
103
|
+
$ API_KEY=test_xxxxxx rackup
|
104
|
+
```
|
105
|
+
You can then browse the swagger documentation on [http://localhost:9292](http://localhost:9292)
|
106
|
+
|
94
107
|
If you wish to learn more about our API, please visit the [Mollie Developer Portal](https://www.mollie.com/developer/). API Documentation is available in both Dutch and English.
|
95
108
|
|
96
109
|
## License ##
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class Application < Sinatra::Application
|
2
|
+
::Application
|
3
|
+
swagger_root do
|
4
|
+
key :swagger, '2.0'
|
5
|
+
info version: Mollie::API::Client::VERSION,
|
6
|
+
title: 'Mollie',
|
7
|
+
description: 'Examples for the mollie api',
|
8
|
+
termsOfService: 'https://github.com/mollie/mollie-api-ruby',
|
9
|
+
contact: { name: 'Mollie B.V.' },
|
10
|
+
license: { name: 'BSD' }
|
11
|
+
key :basePath, '/'
|
12
|
+
key :consumes, %w(application/json multipart/form-data)
|
13
|
+
key :produces, ['application/json', "text/plain"]
|
14
|
+
|
15
|
+
security_definition :api_key do
|
16
|
+
key :type, :apiKey
|
17
|
+
key :name, :"X-Mollie-Api-Key"
|
18
|
+
key :in, :header
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
swagger_schema :ErrorModel do
|
23
|
+
property :message do
|
24
|
+
key :type, :string
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
get '/' do
|
29
|
+
# redirect "http://petstore.swagger.io/?url=#{Ngrok::Tunnel.ngrok_url_https}/api-docs"
|
30
|
+
redirect "#{Ngrok::Tunnel.ngrok_url_https}/index.html"
|
31
|
+
end
|
32
|
+
|
33
|
+
get '/api-docs' do
|
34
|
+
content_type :json
|
35
|
+
Swagger::Blocks.build_root_json([Application ]).to_json
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'rack/oauth2'
|
2
|
+
class Application < Sinatra::Application
|
3
|
+
swagger_path '/oauth2/authorize' do
|
4
|
+
operation :get, description: 'https://www.mollie.com/en/docs/reference/oauth/authorize', tags: ['Connect'] do
|
5
|
+
parameter name: :client_id, in: 'query', description: 'Client Id', type: :string
|
6
|
+
parameter name: :secret, in: 'query', description: 'oAuth Secret', type: :string
|
7
|
+
parameter name: :redirect_uri, in: 'query', description: 'Redirect URI', type: :string, default: "#{Ngrok::Tunnel.ngrok_url_https}/token"
|
8
|
+
parameter name: :state, in: 'query', description: 'State', type: :string, default: SecureRandom.uuid
|
9
|
+
parameter name: :scope, in: 'query', description: 'Scope', type: :string, default: Mollie::API::Resource::Permissions.available.join(' ')
|
10
|
+
parameter name: :response_type, in: 'query', description: 'Response Type', type: :string
|
11
|
+
parameter name: :approval_prompt, in: 'query', description: 'Approval prompt', type: :boolean
|
12
|
+
security api_key: []
|
13
|
+
response 301, description: 'Successful response'
|
14
|
+
response 500, description: 'Unexpected error'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
swagger_path '/oauth2/token' do
|
19
|
+
operation :get, description: 'Get access token', tags: ['Connect'] do
|
20
|
+
parameter name: :client_id, in: 'query', description: 'Client Id', type: :string
|
21
|
+
parameter name: :secret, in: 'query', description: 'oAuth Secret', type: :string
|
22
|
+
parameter name: :redirect_uri, in: 'query', description: 'Redirect URI', type: :string, default: "#{Ngrok::Tunnel.ngrok_url_https}/token"
|
23
|
+
parameter name: :code, in: 'query', description: 'Authorization code', type: :string
|
24
|
+
security api_key: []
|
25
|
+
response 200, description: 'Successful response'
|
26
|
+
response 500, description: 'Unexpected error'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
get '/oauth2/authorize' do
|
31
|
+
client = Rack::OAuth2::Client.new(
|
32
|
+
identifier: params[:client_id],
|
33
|
+
secret: params[:secret],
|
34
|
+
state: params[:state],
|
35
|
+
redirect_uri: params[:redirect_uri],
|
36
|
+
authorization_endpoint: 'https://www.mollie.com/oauth2/authorize',
|
37
|
+
token_endpoint: 'https://api.mollie.nl/oauth2/tokens'
|
38
|
+
)
|
39
|
+
client.authorization_uri(state: params[:state], scope: params[:scope], approval_prompt: params[:approval_prompt])
|
40
|
+
end
|
41
|
+
|
42
|
+
get '/token' do
|
43
|
+
params[:code]
|
44
|
+
end
|
45
|
+
|
46
|
+
get '/oauth2/token' do
|
47
|
+
client = Rack::OAuth2::Client.new(
|
48
|
+
identifier: params[:client_id],
|
49
|
+
secret: params[:secret],
|
50
|
+
redirect_uri: params[:redirect_uri],
|
51
|
+
authorization_endpoint: 'https://www.mollie.com/oauth2/authorize',
|
52
|
+
token_endpoint: 'https://api.mollie.nl/oauth2/tokens'
|
53
|
+
)
|
54
|
+
|
55
|
+
client.authorization_code = params['code']
|
56
|
+
client.access_token!.access_token
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,115 @@
|
|
1
|
+
class Application < Sinatra::Application
|
2
|
+
swagger_schema :CustomerRequest do
|
3
|
+
property :name, type: :string, description: 'Name', example: "John doe"
|
4
|
+
property :email, type: :string, description: 'Email', example: "john@example.com"
|
5
|
+
property :locale, type: :string, description: 'locale', example: "en_US"
|
6
|
+
property :metadata, type: :object, description: 'Metadata', example: { "user_id" => "12345" }
|
7
|
+
property :profileId, type: :object, description: 'ProfileId (Connect api only)', example: "pfl_FxPFwdxxJf"
|
8
|
+
property :testmode, type: :boolean, description: '(Connect api only)', example: true
|
9
|
+
end
|
10
|
+
|
11
|
+
swagger_path '/v1/customers' do
|
12
|
+
operation :get, description: 'https://www.mollie.com/en/docs/reference/customers/list', tags: ['Customers'] do
|
13
|
+
parameter name: :offset, in: 'query', description: 'Offset', type: :integer
|
14
|
+
parameter name: :count, in: 'query', description: 'Count', type: :integer
|
15
|
+
parameter name: :testmode, in: 'query', type: :boolean, description: '(Connect api only)', example: true
|
16
|
+
security api_key: []
|
17
|
+
response 200, description: 'Successful response'
|
18
|
+
response 500, description: 'Unexpected error'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
swagger_path '/v1/customers' do
|
23
|
+
operation :post, description: 'https://www.mollie.com/en/docs/reference/customers/create', tags: ['Customers'] do
|
24
|
+
security api_key: []
|
25
|
+
parameter name: :customer, in: 'body', description: 'CustomerRequest params', schema: { '$ref' => '#/definitions/CustomerRequest' }
|
26
|
+
response 200, description: 'Successful response'
|
27
|
+
response 500, description: 'Unexpected error'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
swagger_path '/v1/customers/{id}' do
|
32
|
+
operation :get, description: 'https://www.mollie.com/en/docs/reference/customers/get', tags: ['Customers'] do
|
33
|
+
parameter name: :id, in: 'path', description: 'Customer id', type: :string, default: 'cst_GUvJFqwVCD'
|
34
|
+
parameter name: :testmode, in: 'query', type: :boolean, description: '(Connect api only)', example: true
|
35
|
+
security api_key: []
|
36
|
+
response 200, description: 'Successful response'
|
37
|
+
response 500, description: 'Unexpected error'
|
38
|
+
end
|
39
|
+
operation :patch, description: 'https://www.mollie.com/en/docs/reference/customers/create', tags: ['Customers'] do
|
40
|
+
parameter name: :id, in: 'path', description: 'Customer id', type: :string, default: 'cst_GUvJFqwVCD'
|
41
|
+
security api_key: []
|
42
|
+
parameter name: :customer, in: 'body', description: 'CustomerRequest params', schema: { '$ref' => '#/definitions/CustomerRequest' }
|
43
|
+
response 200, description: 'Successful response'
|
44
|
+
response 500, description: 'Unexpected error'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
swagger_path '/v1/customers/{customer_id}/payments' do
|
49
|
+
operation :get, description: 'https://www.mollie.com/en/docs/reference/customers/list-payments', tags: ['Customers'] do
|
50
|
+
parameter name: :customer_id, in: 'path', description: 'Customer id', type: :string, default: 'cst_GUvJFqwVCD'
|
51
|
+
parameter name: :testmode, in: 'query', type: :boolean, description: '(Connect api only)', example: true
|
52
|
+
security api_key: []
|
53
|
+
response 200, description: 'Successful response'
|
54
|
+
response 500, description: 'Unexpected error'
|
55
|
+
end
|
56
|
+
|
57
|
+
operation :post, description: 'https://www.mollie.com/en/docs/reference/customers/create-payment', tags: ['Customers'] do
|
58
|
+
parameter name: :customer_id, in: 'path', description: 'Customer id', type: :string, default: 'cst_GUvJFqwVCD'
|
59
|
+
parameter name: :payment, in: 'body', description: 'PaymentRequest params', schema: { '$ref' => '#/definitions/PaymentRequest' }
|
60
|
+
security api_key: []
|
61
|
+
response 200, description: 'Successful response'
|
62
|
+
response 500, description: 'Unexpected error'
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
get '/v1/customers' do
|
67
|
+
customers = client.customers.all(params[:offset], params[:count], testmode: params[:testmode])
|
68
|
+
JSON.pretty_generate(customers.attributes)
|
69
|
+
end
|
70
|
+
|
71
|
+
get '/v1/customers/:id' do
|
72
|
+
customer = client.customers.get(params[:id], testmode: params[:testmode])
|
73
|
+
JSON.pretty_generate(customer.attributes)
|
74
|
+
end
|
75
|
+
|
76
|
+
post '/v1/customers' do
|
77
|
+
customer = client.customers.create(
|
78
|
+
name: json_params['name'],
|
79
|
+
email: json_params['email'],
|
80
|
+
locale: json_params['locale'],
|
81
|
+
metadata: json_params['metadata'],
|
82
|
+
profileId: json_params['profileId'],
|
83
|
+
testmode: json_params['testmode']
|
84
|
+
)
|
85
|
+
JSON.pretty_generate(customer.attributes)
|
86
|
+
end
|
87
|
+
|
88
|
+
patch '/v1/customers/:id' do
|
89
|
+
customer = client.customers.update(params[:id],
|
90
|
+
name: json_params['name'],
|
91
|
+
email: json_params['email'],
|
92
|
+
locale: json_params['locale'],
|
93
|
+
metadata: json_params['metadata'],
|
94
|
+
)
|
95
|
+
JSON.pretty_generate(customer.attributes)
|
96
|
+
end
|
97
|
+
|
98
|
+
get '/v1/customers/:customer_id/payments' do
|
99
|
+
payments = client.customers_payments.with(params[:customer_id]).all(testmode: params[:testmode])
|
100
|
+
JSON.pretty_generate(payments.attributes)
|
101
|
+
end
|
102
|
+
|
103
|
+
post '/v1/customers/:customer_id/payments' do
|
104
|
+
payment = client.customers_payments.with(params[:customer_id]).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
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
class Application < Sinatra::Application
|
2
|
+
swagger_path '/v1/invoices' do
|
3
|
+
operation :get, description: 'List invoices https://www.mollie.com/en/docs/reference/invoices/list', tags: ['Invoices'] do
|
4
|
+
parameter name: :include, in: 'query', description: 'Include', type: :string, example: "lines,settlements"
|
5
|
+
parameter name: :reference, in: 'query', description: 'Issuer id', type: :string, example: "inv_FrvewDA3Pr"
|
6
|
+
parameter name: :year, in: 'query', description: 'Issuer id', type: :integer, example: Time.now.year
|
7
|
+
parameter name: :offset, in: 'query', description: 'Offset', type: :integer
|
8
|
+
parameter name: :count, in: 'query', description: 'Count', type: :integer
|
9
|
+
security api_key: []
|
10
|
+
response 200, description: 'Successful response'
|
11
|
+
response 500, description: 'Unexpected error'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
swagger_path '/v1/invoices/{id}' do
|
16
|
+
operation :get, description: 'Get invoice', tags: ['Invoices'] do
|
17
|
+
parameter name: :id, in: 'path', description: 'Issuer id', type: :string, example: "inv_FrvewDA3Pr"
|
18
|
+
parameter name: :include, in: 'query', description: 'Includes', type: :string, example: "lines,settlements"
|
19
|
+
security api_key: []
|
20
|
+
response 200, description: 'Successful response'
|
21
|
+
response 500, description: 'Unexpected error'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
get '/v1/invoices' do
|
26
|
+
invoices = client.invoices.all(params[:offset], params[:count],
|
27
|
+
include: params[:include],
|
28
|
+
reference: params[:reference],
|
29
|
+
year: params[:year]
|
30
|
+
)
|
31
|
+
JSON.pretty_generate(invoices.attributes)
|
32
|
+
end
|
33
|
+
|
34
|
+
get '/v1/invoices/:id' do
|
35
|
+
invoice = client.invoices.get(params[:id], include: params[:include])
|
36
|
+
JSON.pretty_generate(invoice.attributes)
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
class Application < Sinatra::Application
|
2
|
+
swagger_path '/v1/issuers' do
|
3
|
+
operation :get, description: 'List issuers https://www.mollie.com/en/docs/reference/issuers/list', tags: ['Issuers'] 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/issuers/{id}' do
|
14
|
+
operation :get, description: 'Get issuer', tags: ['Issuers'] do
|
15
|
+
parameter name: :id, in: 'path', description: 'Issuer 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/issuers' do
|
24
|
+
issuers = client.issuers.all(params[:offset], params[:count],
|
25
|
+
testmode: params[:testmode])
|
26
|
+
JSON.pretty_generate(issuers.attributes)
|
27
|
+
end
|
28
|
+
|
29
|
+
get '/v1/issuers/:id' do
|
30
|
+
issuer = client.issuers.get(params[:id],
|
31
|
+
testmode: params[:testmode]
|
32
|
+
)
|
33
|
+
JSON.pretty_generate(issuer.attributes)
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
class Application < Sinatra::Application
|
2
|
+
swagger_schema :MandateRequest do
|
3
|
+
property :method, type: :decimal, description: 'Method', example: "directdebit"
|
4
|
+
property :consumer_name, type: :string, description: 'Consumer name', example: "Customer A"
|
5
|
+
property :consumer_account, type: :string, description: 'Account number', example: "NL17RABO0213698412"
|
6
|
+
property :consumer_bic, type: :string, description: 'BIC', example: "RABONL2U"
|
7
|
+
property :signature_date, type: :string, description: 'Date mandate was signed', example: "2016-05-01"
|
8
|
+
property :mandate_reference, type: :string, description: 'A custom reference', example: "YOUR-COMPANY-MD13804"
|
9
|
+
property :webhook_url, type: :string, description: 'URL for redirection', example: "https://webshop.example.org/payments/webhook/"
|
10
|
+
property :testmode, type: :boolean, description: '(Connect api only)', example: true
|
11
|
+
end
|
12
|
+
|
13
|
+
swagger_path '/v1/customers/{customer_id}/mandates' do
|
14
|
+
operation :post, description: 'Create mandates', tags: ['Mandates'] do
|
15
|
+
parameter name: :customer_id, in: 'path', description: 'Customer id', type: :string, default: "cst_GUvJFqwVCD"
|
16
|
+
security api_key: []
|
17
|
+
parameter name: :mandate, in: 'body', description: 'MandateRequest params', schema: { '$ref' => '#/definitions/MandateRequest' }
|
18
|
+
response 200, description: 'Successful response'
|
19
|
+
response 500, description: 'Unexpected error'
|
20
|
+
end
|
21
|
+
|
22
|
+
operation :get, description: 'List mandates', tags: ['Mandates'] do
|
23
|
+
parameter name: :customer_id, in: 'path', description: 'Customer id', type: :string, default: "cst_GUvJFqwVCD"
|
24
|
+
parameter name: :offset, in: 'query', description: 'Offset', type: :integer
|
25
|
+
parameter name: :count, in: 'query', description: 'Count', type: :integer
|
26
|
+
parameter name: :testmode, in: 'query', description: 'Testmode', type: :boolean, default: true
|
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/customers/{customer_id}/mandates/{id}' do
|
34
|
+
operation :get, description: 'Get mandate', tags: ['Mandates'] do
|
35
|
+
parameter name: :customer_id, in: 'path', description: 'Customer id', type: :string, default: "cst_GUvJFqwVCD"
|
36
|
+
parameter name: :id, in: 'path', description: 'Mandate id', type: :string, default: "mdt_qP7Qk6mgaz"
|
37
|
+
parameter name: :testmode, in: 'query', description: 'Testmode', type: :boolean, default: true
|
38
|
+
security api_key: []
|
39
|
+
response 200, description: 'Successful response'
|
40
|
+
response 500, description: 'Unexpected error'
|
41
|
+
end
|
42
|
+
|
43
|
+
operation :delete, description: 'Remove mandate', tags: ['Mandates'] do
|
44
|
+
parameter name: :customer_id, in: 'path', description: 'Customer id', type: :string, default: "cst_GUvJFqwVCD"
|
45
|
+
parameter name: :id, in: 'path', description: 'Mandate id', type: :string, default: "mdt_qP7Qk6mgaz"
|
46
|
+
parameter name: :testmode, in: 'query', description: 'Testmode', type: :boolean, default: true
|
47
|
+
security api_key: []
|
48
|
+
response 200, description: 'Successful response'
|
49
|
+
response 500, description: 'Unexpected error'
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
post '/v1/customers/:customer_id/mandates' do
|
54
|
+
mandate = client.customers_mandates.with(params[:customer_id]).create(
|
55
|
+
method: json_params['method'],
|
56
|
+
consumer_name: json_params['consumer_name'],
|
57
|
+
consumer_account: json_params['consumer_account'],
|
58
|
+
consumer_bic: json_params['consumer_bic'],
|
59
|
+
signature_date: json_params['signature_date'],
|
60
|
+
mandate_reference: json_params['mandate_reference'],
|
61
|
+
webhook_url: json_params['webhook_url'],
|
62
|
+
testmode: json_params['testmode']
|
63
|
+
)
|
64
|
+
JSON.pretty_generate(mandate.attributes)
|
65
|
+
end
|
66
|
+
|
67
|
+
get '/v1/customers/:customer_id/mandates' do
|
68
|
+
mandates = client.customers_mandates.with(params[:customer_id]).all(params[:offset], params[:count], testmode: params[:testmode]
|
69
|
+
)
|
70
|
+
JSON.pretty_generate(mandates.attributes)
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
get '/v1/customers/:customer_id/mandates/:id' do
|
75
|
+
mandate = client.customers_mandates.with(params[:customer_id]).get(params[:id], testmode: params[:testmode])
|
76
|
+
JSON.pretty_generate(mandate.attributes)
|
77
|
+
end
|
78
|
+
|
79
|
+
delete '/v1/customers/:customer_id/mandates/:id' do
|
80
|
+
client.customers_mandates.with(params[:customer_id]).delete(params[:id], testmode: params[:testmode])
|
81
|
+
"deleted"
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
class Application < Sinatra::Application
|
2
|
+
swagger_path '/v1/methods' do
|
3
|
+
operation :get, description: 'List methods https://www.mollie.com/en/docs/reference/methods/list', tags: ['Methods'] do
|
4
|
+
parameter name: :include, in: 'query', description: 'Include additional data, e.g. issuers', type: :string
|
5
|
+
parameter name: :recurring_type, in: 'query', description: 'Recurring type', type: :string, default: 'first'
|
6
|
+
parameter name: :locale, in: 'query', description: 'Locale', type: :integer
|
7
|
+
parameter name: :offset, in: 'query', description: 'Offset', type: :integer
|
8
|
+
parameter name: :count, in: 'query', description: 'Count', type: :integer
|
9
|
+
parameter name: :profile_id, in: 'query', description: 'Profile ID', type: :string
|
10
|
+
parameter name: :testmode, in: 'query', description: 'Test mode', type: :boolean
|
11
|
+
security api_key: []
|
12
|
+
response 200, description: 'Successful response'
|
13
|
+
response 500, description: 'Unexpected error'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
swagger_path '/v1/methods/{id}' do
|
18
|
+
operation :get, description: 'Get method', tags: ['Methods'] do
|
19
|
+
parameter name: :id, in: 'path', description: 'Method id', type: :string
|
20
|
+
parameter name: :include, in: 'query', description: 'Include additional data, e.g. issuers', type: :string
|
21
|
+
parameter name: :locale, in: 'query', description: 'Locale', type: :integer
|
22
|
+
parameter name: :profile_id, in: 'query', description: 'Profile ID', type: :string
|
23
|
+
parameter name: :testmode, in: 'query', description: 'Test mode', type: :boolean
|
24
|
+
security api_key: []
|
25
|
+
response 200, description: 'Successful response'
|
26
|
+
response 500, description: 'Unexpected error'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
get '/v1/methods' do
|
31
|
+
methods = client.methods.all(params[:offset], params[:count],
|
32
|
+
include: params[:include],
|
33
|
+
recurring_type: params[:recurring_type],
|
34
|
+
locale: params[:locale],
|
35
|
+
profile_id: params[:profile_id],
|
36
|
+
testmode: params[:testmode]
|
37
|
+
)
|
38
|
+
JSON.pretty_generate(methods.attributes)
|
39
|
+
end
|
40
|
+
|
41
|
+
get '/v1/methods/:id' do
|
42
|
+
method = client.methods.get(params[:id],
|
43
|
+
include: params[:include],
|
44
|
+
locale: params[:locale],
|
45
|
+
profile_id: params[:profile_id],
|
46
|
+
testmode: params[:testmode]
|
47
|
+
)
|
48
|
+
JSON.pretty_generate(method.attributes)
|
49
|
+
end
|
50
|
+
end
|