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.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/README.md +15 -2
  4. data/examples/apis/api_docs.rb +37 -0
  5. data/examples/apis/connect.rb +58 -0
  6. data/examples/apis/customers.rb +115 -0
  7. data/examples/apis/invoices.rb +38 -0
  8. data/examples/apis/issuers.rb +35 -0
  9. data/examples/apis/mandates.rb +83 -0
  10. data/examples/apis/methods.rb +50 -0
  11. data/examples/apis/organizations.rb +16 -0
  12. data/examples/apis/payments.rb +140 -0
  13. data/examples/apis/permissions.rb +32 -0
  14. data/examples/apis/profiles.rb +126 -0
  15. data/examples/apis/refunds.rb +17 -0
  16. data/examples/apis/settlements.rb +84 -0
  17. data/examples/apis/subscriptions.rb +165 -0
  18. data/examples/config.ru +58 -0
  19. data/examples/public/images/collapse.gif +0 -0
  20. data/examples/public/images/expand.gif +0 -0
  21. data/examples/public/images/explorer_icons.png +0 -0
  22. data/examples/public/images/favicon-16x16.png +0 -0
  23. data/examples/public/images/favicon-32x32.png +0 -0
  24. data/examples/public/images/favicon.ico +0 -0
  25. data/examples/public/images/logo_small.png +0 -0
  26. data/examples/public/images/pet_store_api.png +0 -0
  27. data/examples/public/images/throbber.gif +0 -0
  28. data/examples/public/images/wordnik_api.png +0 -0
  29. data/examples/public/index.html +101 -0
  30. data/examples/public/javascripts/lib/backbone-min.js +1 -0
  31. data/examples/public/javascripts/lib/es5-shim.js +1 -0
  32. data/examples/public/javascripts/lib/handlebars-4.0.5.js +3 -0
  33. data/examples/public/javascripts/lib/highlight.9.1.0.pack.js +1 -0
  34. data/examples/public/javascripts/lib/highlight.9.1.0.pack_extended.js +1 -0
  35. data/examples/public/javascripts/lib/jquery-1.8.0.min.js +3 -0
  36. data/examples/public/javascripts/lib/jquery.ba-bbq.min.js +1 -0
  37. data/examples/public/javascripts/lib/jquery.slideto.min.js +1 -0
  38. data/examples/public/javascripts/lib/jquery.wiggle.min.js +1 -0
  39. data/examples/public/javascripts/lib/js-yaml.min.js +2 -0
  40. data/examples/public/javascripts/lib/jsoneditor.min.js +5 -0
  41. data/examples/public/javascripts/lib/lodash.min.js +2 -0
  42. data/examples/public/javascripts/lib/marked.js +1 -0
  43. data/examples/public/javascripts/lib/object-assign-pollyfill.js +1 -0
  44. data/examples/public/javascripts/lib/sanitize-html.min.js +4 -0
  45. data/examples/public/javascripts/lib/swagger-oauth.js +1 -0
  46. data/examples/public/javascripts/swagger-ui.js +25378 -0
  47. data/examples/public/javascripts/swagger-ui.min.js +15 -0
  48. data/examples/public/javascripts/swagger_docs.js +14 -0
  49. data/examples/public/o2c.html +20 -0
  50. data/examples/public/stylesheets/reset.css +1 -0
  51. data/examples/public/stylesheets/screen.css +1545 -0
  52. data/examples/public/stylesheets/swagger_docs.css +4 -0
  53. data/examples/public/stylesheets/typography.css +0 -0
  54. data/lib/mollie/api/client.rb +42 -22
  55. data/lib/mollie/api/client/version.rb +1 -1
  56. data/lib/mollie/api/object/invoice.rb +70 -0
  57. data/lib/mollie/api/object/method.rb +1 -0
  58. data/lib/mollie/api/object/organization.rb +1 -1
  59. data/lib/mollie/api/object/payment.rb +21 -7
  60. data/lib/mollie/api/object/payment/refund.rb +5 -1
  61. data/lib/mollie/api/resource/base.rb +6 -6
  62. data/lib/mollie/api/resource/invoices.rb +11 -0
  63. data/lib/mollie/api/resource/permissions.rb +20 -0
  64. data/lib/mollie/api/resource/profiles/apikeys.rb +6 -0
  65. data/lib/mollie/api/resource/refunds.rb +11 -0
  66. data/lib/mollie/api/resource/settlements.rb +8 -0
  67. data/lib/mollie/api/resource/settlements/payments.rb +27 -0
  68. data/mollie.gemspec +7 -0
  69. data/test/mollie/api/client_test.rb +12 -5
  70. data/test/mollie/api/object/invoice_test.rb +59 -0
  71. data/test/mollie/api/object/organization_test.rb +0 -6
  72. data/test/mollie/api/object/payment_test.rb +15 -0
  73. data/test/mollie/api/resource/invoices_test.rb +13 -0
  74. metadata +159 -12
  75. data/examples/1-new-payment.rb +0 -56
  76. data/examples/2-webhook-verification.rb +0 -41
  77. data/examples/3-return-page.rb +0 -21
  78. data/examples/4-ideal-payment.rb +0 -79
  79. data/examples/5-payments-history.rb +0 -27
  80. data/examples/6-list-activated-methods.rb +0 -30
  81. data/examples/7-refund-payment.rb +0 -40
  82. data/examples/app.rb +0 -58
  83. data/examples/orders/.gitignore +0 -1
@@ -1,41 +0,0 @@
1
- #
2
- # Example 2 - How to verify Mollie API Payments in a webhook.
3
- #
4
- require File.expand_path "../lib/mollie/api/client", File.dirname(__FILE__)
5
-
6
- begin
7
- #
8
- # Initialize the Mollie API library with your API key.
9
- #
10
- # See: https://www.mollie.nl/beheer/account/profielen/
11
- #
12
- mollie = Mollie::API::Client.new
13
- mollie.api_key = "test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM"
14
-
15
- #
16
- # Retrieve the payment's current state.
17
- #
18
- payment = mollie.payments.get $request.params['id']
19
- order_id = payment.metadata.order_id
20
-
21
- #
22
- # Update the order in the database.
23
- #
24
- database_write order_id, payment.status
25
-
26
- if payment.paid?
27
- #
28
- # At this point you'd probably want to start the process of delivering the product to the customer.
29
- #
30
- $response.body << "Paid"
31
- elsif payment.open? == false
32
- #
33
- # The payment isn't paid and isn't open anymore. We can assume it was aborted.
34
- #
35
- $response.body << "Cancelled"
36
- else
37
- $response.body << "In progress"
38
- end
39
- rescue Mollie::API::Exception => e
40
- $response.body << "API call failed: " << (CGI.escapeHTML e.message)
41
- end
@@ -1,21 +0,0 @@
1
- #
2
- # Example 3 - How to show a return page to the customer.
3
- #
4
- # In this example we retrieve the order stored in the database.
5
- # Here, it's unnecessary to use the Mollie API Client.
6
- #
7
- if $request.params.empty?
8
- $response.body << "No order"
9
- else
10
- status = database_read $request.params['order_id']
11
-
12
- #
13
- # Determine the url parts to these example files.
14
- #
15
- path = $request.script_name || ""
16
-
17
- $response.body << "<p>Your payment status is '" << (CGI.escapeHTML status) << "'.</p>"
18
- $response.body << "<p>"
19
- $response.body << '<a href="' << path << '/">Back to examples</a><br>'
20
- $response.body << "</p>"
21
- end
@@ -1,79 +0,0 @@
1
- #
2
- # Example 4 - How to prepare an iDEAL payment with the Mollie API.
3
- #
4
- require File.expand_path "../lib/mollie/api/client", File.dirname(__FILE__)
5
-
6
- begin
7
- #
8
- # Initialize the Mollie API library with your API key.
9
- #
10
- # See: https://www.mollie.nl/beheer/account/profielen/
11
- #
12
- mollie = Mollie::API::Client.new
13
- mollie.api_key = "test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM"
14
-
15
- #
16
- # First, let the customer pick the bank in a simple HTML form. This step is actually optional.
17
- #
18
- if $request.params.empty?
19
- issuers = mollie.issuers.all
20
-
21
- $response.body << '<form method="post">Select your bank: <select name="issuer">'
22
-
23
- issuers.each { |issuer|
24
- if issuer.method == Mollie::API::Object::Method::IDEAL
25
- $response.body << '<option value=' << (CGI.escapeHTML issuer.id) << '>' << (CGI.escapeHTML issuer.name)
26
- end
27
- }
28
-
29
- $response.body << '<option value="">or select later</option>'
30
- $response.body << '</select><button>OK</button></form>'
31
- else
32
- #
33
- # Generate a unique order id for this example. It is important to include this unique attribute
34
- # in the redirectUrl (below) so a proper return page can be shown to the customer.
35
- #
36
- order_id = Time.now.to_i
37
-
38
- #
39
- # Determine the url parts to these example files.
40
- #
41
- protocol = $request.secure? && "https" || "http"
42
- hostname = $request.host || "localhost"
43
- port = $request.port || 80
44
- path = $request.script_name || ""
45
-
46
- #
47
- # Payment parameters:
48
- # amount Amount in EUROs. This example creates a € 27,50 payment.
49
- # description Description of the payment.
50
- # redirect_url Redirect location. The customer will be redirected there after the payment.
51
- # webhook_url Webhook location, used to report when the payment changes state.
52
- # metadata Custom metadata that is stored with the payment.
53
- # method Payment method "ideal".
54
- # issuer The customer's bank. If empty the customer can select it later.
55
- #
56
- payment = mollie.payments.create \
57
- :amount => 27.50,
58
- :description => "My first API payment",
59
- :redirect_url => "#{protocol}://#{hostname}:#{port}#{path}/3-return-page?order_id=#{order_id}",
60
- :webhook_url => "#{protocol}://#{hostname}:#{port}#{path}/2-webhook-verification",
61
- :metadata => {
62
- :order_id => order_id
63
- },
64
- :method => Mollie::API::Object::Method::IDEAL,
65
- :issuer => !$request.params['issuer'].empty? ? $request.params['issuer'] : nil
66
-
67
- #
68
- # In this example we store the order with its payment status in a database.
69
- #
70
- database_write order_id, payment.status
71
-
72
- #
73
- # Send the customer off to complete the payment.
74
- #
75
- $response.redirect payment.payment_url
76
- end
77
- rescue Mollie::API::Exception => e
78
- $response.body << "API call failed: " << (CGI.escapeHTML e.message)
79
- end
@@ -1,27 +0,0 @@
1
- #
2
- # Example 5 - How to retrieve your payments history.
3
- #
4
- require File.expand_path "../lib/mollie/api/client", File.dirname(__FILE__)
5
-
6
- begin
7
- #
8
- # Initialize the Mollie API library with your API key.
9
- #
10
- # See: https://www.mollie.nl/beheer/account/profielen/
11
- #
12
- mollie = Mollie::API::Client.new
13
- mollie.api_key = "test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM"
14
-
15
- #
16
- # Get the all payments for this API key ordered by newest.
17
- #
18
- payments = mollie.payments.all
19
-
20
- $response.body = "Your API key has #{payments.total_count} payments, last #{payments.count}:<br>"
21
-
22
- payments.each { |payment|
23
- $response.body << "&euro; #{payment.amount}, status: #{CGI.escapeHTML payment.status} (#{CGI.escapeHTML payment.id})<br>"
24
- }
25
- rescue Mollie::API::Exception => e
26
- $response.body << "API call failed: " << (CGI.escapeHTML e.message)
27
- end
@@ -1,30 +0,0 @@
1
- #
2
- # Example 6 - How to get the currently activated payment methods.
3
- #
4
- require File.expand_path "../lib/mollie/api/client", File.dirname(__FILE__)
5
-
6
- begin
7
- #
8
- # Initialize the Mollie API library with your API key.
9
- #
10
- # See: https://www.mollie.nl/beheer/account/profielen/
11
- #
12
- mollie = Mollie::API::Client.new
13
- mollie.api_key = "test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM"
14
-
15
- #
16
- # Get the all the activated methods for this API key.
17
- #
18
- methods = mollie.methods.all
19
-
20
- $response.body << "Your API key has #{methods.total_count} activated payment methods:<br>"
21
-
22
- methods.each { |method|
23
- $response.body << '<div style="line-height:40px; vertical-align:top">'
24
- $response.body << '<img src="' << (CGI.escapeHTML method.image.normal) << '"> '
25
- $response.body << (CGI.escapeHTML method.description) << ' (' << (CGI.escapeHTML method.id) << ')'
26
- $response.body << '</div>'
27
- }
28
- rescue Mollie::API::Exception => e
29
- $response.body << "API call failed: " << (CGI.escapeHTML e.message)
30
- end
@@ -1,40 +0,0 @@
1
- #
2
- # Example 7 - How to refund a payment programmatically.
3
- #
4
- require File.expand_path "../lib/mollie/api/client", File.dirname(__FILE__)
5
-
6
- begin
7
- #
8
- # Initialize the Mollie API library with your API key.
9
- #
10
- # See: https://www.mollie.nl/beheer/account/profielen/
11
- #
12
- mollie = Mollie::API::Client.new
13
- mollie.api_key = "test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM"
14
-
15
- #
16
- # Retrieve the payment you want to refund from the API.
17
- #
18
- payment = mollie.payments.get "tr_47uEE1su8q"
19
-
20
- #
21
- # Refund the payment.
22
- #
23
- refund = mollie.payments_refunds.with(payment).create
24
-
25
- $response.body << "The payment #{payment.id} is now refunded.<br>"
26
-
27
- #
28
- # Retrieve refunds on a payment.
29
- #
30
- refunds = mollie.payments_refunds.with(payment).all
31
-
32
- refunds.each { |refund|
33
- $response.body << '<br> Refund date: ' << (CGI.escapeHTML refund.refunded_datetime)
34
- $response.body << '<br> Refunded: &euro; ' << (CGI.escapeHTML refund.amount_refunded)
35
- $response.body << '<br> Remaining: &euro; ' << (CGI.escapeHTML refund.amount_remaining)
36
- $response.body << '<br>'
37
- }
38
- rescue Mollie::API::Exception => e
39
- $response.body << "API call failed: " << (CGI.escapeHTML e.message)
40
- end
@@ -1,58 +0,0 @@
1
- require 'sinatra'
2
-
3
- #
4
- # Show all examples as links.
5
- #
6
- examples = [
7
- '1-new-payment',
8
- '2-webhook-verification',
9
- '3-return-page',
10
- '4-ideal-payment',
11
- '5-payments-history',
12
- '6-list-activated-methods',
13
- '7-refund-payment'
14
- ]
15
-
16
- get "/" do
17
- index = ""
18
-
19
- examples.each { |example|
20
- index << "<a href='/#{example}'>#{example}</a><br>"
21
- }
22
-
23
- index
24
- end
25
-
26
- #
27
- # Register all examples as pages.
28
- #
29
- examples.each { |example|
30
- get "/#{example}" do
31
- $request = request
32
- $response = response
33
- load File.expand_path "#{example}.rb", File.dirname(__FILE__)
34
- end
35
-
36
- post "/#{example}" do
37
- $request = request
38
- $response = response
39
- load File.expand_path "#{example}.rb", File.dirname(__FILE__)
40
- end
41
- }
42
-
43
- #
44
- # NOTE: This example uses a text file as a database. Please use a real database like MySQL in production code.
45
- #
46
- def database_write (order_id, status)
47
- order_id = order_id.to_i
48
- database = File.expand_path "orders/order-#{order_id}.txt", File.dirname(__FILE__)
49
-
50
- File.open(database, 'w') { |file| file.write status }
51
- end
52
-
53
- def database_read (order_id)
54
- order_id = order_id.to_i
55
- database = File.expand_path "orders/order-#{order_id}.txt", File.dirname(__FILE__)
56
-
57
- status = File.read(database) || "unknown order"
58
- end
@@ -1 +0,0 @@
1
- *.txt