mollie-api-ruby 2.2.1 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (197) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +37 -8
  4. data/examples/apis/api_docs.rb +1 -1
  5. data/examples/apis/chargebacks.rb +17 -0
  6. data/examples/apis/connect.rb +1 -1
  7. data/examples/apis/customers.rb +7 -6
  8. data/examples/apis/invoices.rb +2 -2
  9. data/examples/apis/issuers.rb +2 -2
  10. data/examples/apis/mandates.rb +5 -5
  11. data/examples/apis/methods.rb +2 -2
  12. data/examples/apis/organizations.rb +1 -1
  13. data/examples/apis/payments.rb +43 -9
  14. data/examples/apis/permissions.rb +2 -2
  15. data/examples/apis/profiles.rb +7 -7
  16. data/examples/apis/refunds.rb +1 -1
  17. data/examples/apis/settlements.rb +5 -5
  18. data/examples/apis/subscriptions.rb +7 -7
  19. data/examples/config.ru +6 -7
  20. data/lib/{mollie/api/cacert.pem → cacert.pem} +0 -0
  21. data/lib/mollie-api-ruby.rb +1 -0
  22. data/lib/mollie.rb +39 -0
  23. data/lib/mollie/base.rb +91 -0
  24. data/lib/mollie/chargeback.rb +36 -0
  25. data/lib/mollie/client.rb +125 -0
  26. data/lib/mollie/customer.rb +36 -0
  27. data/lib/mollie/customer/mandate.rb +33 -0
  28. data/lib/mollie/customer/payment.rb +6 -0
  29. data/lib/mollie/customer/subscription.rb +65 -0
  30. data/lib/mollie/exception.rb +8 -0
  31. data/lib/mollie/invoice.rb +66 -0
  32. data/lib/mollie/issuer.rb +5 -0
  33. data/lib/mollie/list.rb +40 -0
  34. data/lib/mollie/method.rb +38 -0
  35. data/lib/mollie/organization.rb +24 -0
  36. data/lib/mollie/payment.rb +142 -0
  37. data/lib/mollie/payment/chargeback.rb +6 -0
  38. data/lib/mollie/payment/refund.rb +6 -0
  39. data/lib/mollie/permission.rb +26 -0
  40. data/lib/mollie/profile.rb +78 -0
  41. data/lib/mollie/profile/api_key.rb +19 -0
  42. data/lib/mollie/refund.rb +42 -0
  43. data/lib/mollie/relation.rb +36 -0
  44. data/lib/mollie/settlement.rb +36 -0
  45. data/lib/mollie/settlement/chargeback.rb +6 -0
  46. data/lib/mollie/settlement/payment.rb +6 -0
  47. data/lib/mollie/settlement/refund.rb +6 -0
  48. data/lib/mollie/util.rb +57 -0
  49. data/lib/mollie/version.rb +3 -0
  50. data/mollie.gemspec +2 -2
  51. data/test/helper.rb +5 -1
  52. data/test/mollie/base_test.rb +182 -0
  53. data/test/mollie/chargeback_test.rb +35 -0
  54. data/test/mollie/client_test.rb +122 -0
  55. data/test/mollie/customer/mandate_test.rb +43 -0
  56. data/test/mollie/customer/payment_test.rb +23 -0
  57. data/test/mollie/customer/subscription_test.rb +66 -0
  58. data/test/mollie/customer_test.rb +128 -0
  59. data/test/mollie/invoice_test.rb +55 -0
  60. data/test/mollie/issuer_test.rb +19 -0
  61. data/test/mollie/list_test.rb +40 -0
  62. data/test/mollie/method_test.rb +29 -0
  63. data/test/mollie/organization_test.rb +41 -0
  64. data/test/mollie/payment/chargeback_test.rb +22 -0
  65. data/test/mollie/payment/refund_test.rb +22 -0
  66. data/test/mollie/payment_test.rb +161 -0
  67. data/test/mollie/permission_test.rb +21 -0
  68. data/test/mollie/profile/apikey_test.rb +31 -0
  69. data/test/mollie/profile_test.rb +98 -0
  70. data/test/mollie/refund_test.rb +40 -0
  71. data/test/mollie/settlement/chargeback_test.rb +22 -0
  72. data/test/mollie/settlement/payment_test.rb +22 -0
  73. data/test/mollie/settlement/refund_test.rb +22 -0
  74. data/test/mollie/settlement_test.rb +156 -0
  75. data/website-docs/chargebacks/list-all.rb +12 -0
  76. data/website-docs/connect/authorize.rb +15 -0
  77. data/website-docs/connect/tokens.rb +14 -0
  78. data/website-docs/customers/create-payment.rb +13 -0
  79. data/website-docs/customers/create.rb +12 -0
  80. data/website-docs/customers/delete.rb +10 -0
  81. data/website-docs/customers/get.rb +10 -0
  82. data/website-docs/customers/list-payments.rb +10 -0
  83. data/website-docs/customers/list.rb +12 -0
  84. data/website-docs/customers/update.rb +11 -0
  85. data/website-docs/invoices/get.rb +10 -0
  86. data/website-docs/invoices/list.rb +12 -0
  87. data/website-docs/issuers/get.rb +10 -0
  88. data/website-docs/issuers/list.rb +12 -0
  89. data/website-docs/mandates/create.rb +16 -0
  90. data/website-docs/mandates/delete.rb +10 -0
  91. data/website-docs/mandates/get.rb +10 -0
  92. data/website-docs/mandates/list.rb +12 -0
  93. data/website-docs/methods/get.rb +10 -0
  94. data/website-docs/methods/list.rb +12 -0
  95. data/website-docs/organisations/get.rb +10 -0
  96. data/website-docs/payments/create-refund.rb +14 -0
  97. data/website-docs/payments/create.rb +16 -0
  98. data/website-docs/payments/delete-refund.rb +13 -0
  99. data/website-docs/payments/delete.rb +12 -0
  100. data/website-docs/payments/get-chargeback.rb +11 -0
  101. data/website-docs/payments/get-refund.rb +11 -0
  102. data/website-docs/payments/get.rb +10 -0
  103. data/website-docs/payments/list-chargeback.rb +13 -0
  104. data/website-docs/payments/list-refunds.rb +13 -0
  105. data/website-docs/payments/list.rb +12 -0
  106. data/website-docs/payments/payment-webhook.rb +21 -0
  107. data/website-docs/permissions/get.rb +10 -0
  108. data/website-docs/permissions/list.rb +12 -0
  109. data/website-docs/profiles/create.rb +15 -0
  110. data/website-docs/profiles/delete.rb +10 -0
  111. data/website-docs/profiles/get-key.rb +11 -0
  112. data/website-docs/profiles/get.rb +10 -0
  113. data/website-docs/profiles/list-keys.rb +13 -0
  114. data/website-docs/profiles/list.rb +12 -0
  115. data/website-docs/profiles/reset-key.rb +13 -0
  116. data/website-docs/profiles/update.rb +12 -0
  117. data/website-docs/refunds/list.rb +12 -0
  118. data/website-docs/settlements/get.rb +10 -0
  119. data/website-docs/settlements/list-chargebacks.rb +13 -0
  120. data/website-docs/settlements/list-payments.rb +13 -0
  121. data/website-docs/settlements/list-refunds.rb +13 -0
  122. data/website-docs/settlements/list.rb +12 -0
  123. data/website-docs/settlements/next.rb +9 -0
  124. data/website-docs/settlements/open.rb +9 -0
  125. data/website-docs/subscriptions/create.rb +14 -0
  126. data/website-docs/subscriptions/delete.rb +10 -0
  127. data/website-docs/subscriptions/get.rb +10 -0
  128. data/website-docs/subscriptions/list.rb +12 -0
  129. metadata +134 -104
  130. data/lib/mollie/api/client.rb +0 -161
  131. data/lib/mollie/api/client/version.rb +0 -7
  132. data/lib/mollie/api/exception.rb +0 -10
  133. data/lib/mollie/api/object/base.rb +0 -18
  134. data/lib/mollie/api/object/customer.rb +0 -28
  135. data/lib/mollie/api/object/customer/mandate.rb +0 -37
  136. data/lib/mollie/api/object/customer/subscription.rb +0 -69
  137. data/lib/mollie/api/object/invoice.rb +0 -70
  138. data/lib/mollie/api/object/issuer.rb +0 -9
  139. data/lib/mollie/api/object/list.rb +0 -44
  140. data/lib/mollie/api/object/method.rb +0 -42
  141. data/lib/mollie/api/object/organization.rb +0 -28
  142. data/lib/mollie/api/object/payment.rb +0 -137
  143. data/lib/mollie/api/object/payment/refund.rb +0 -47
  144. data/lib/mollie/api/object/permission.rb +0 -12
  145. data/lib/mollie/api/object/profile.rb +0 -78
  146. data/lib/mollie/api/object/profile/apikey.rb +0 -23
  147. data/lib/mollie/api/object/settlement.rb +0 -32
  148. data/lib/mollie/api/resource/base.rb +0 -53
  149. data/lib/mollie/api/resource/customers.rb +0 -11
  150. data/lib/mollie/api/resource/customers/mandates.rb +0 -27
  151. data/lib/mollie/api/resource/customers/payments.rb +0 -27
  152. data/lib/mollie/api/resource/customers/subscriptions.rb +0 -27
  153. data/lib/mollie/api/resource/invoices.rb +0 -11
  154. data/lib/mollie/api/resource/issuers.rb +0 -11
  155. data/lib/mollie/api/resource/methods.rb +0 -11
  156. data/lib/mollie/api/resource/organizations.rb +0 -11
  157. data/lib/mollie/api/resource/payments.rb +0 -11
  158. data/lib/mollie/api/resource/payments/refunds.rb +0 -27
  159. data/lib/mollie/api/resource/permissions.rb +0 -31
  160. data/lib/mollie/api/resource/profiles.rb +0 -11
  161. data/lib/mollie/api/resource/profiles/apikeys.rb +0 -33
  162. data/lib/mollie/api/resource/refunds.rb +0 -11
  163. data/lib/mollie/api/resource/settlements.rb +0 -19
  164. data/lib/mollie/api/resource/settlements/payments.rb +0 -27
  165. data/lib/mollie/api/util.rb +0 -53
  166. data/test/mollie/api/client_test.rb +0 -111
  167. data/test/mollie/api/object/base_test.rb +0 -21
  168. data/test/mollie/api/object/customer/mandate_test.rb +0 -47
  169. data/test/mollie/api/object/customer/subscription_test.rb +0 -70
  170. data/test/mollie/api/object/customer_test.rb +0 -35
  171. data/test/mollie/api/object/invoice_test.rb +0 -59
  172. data/test/mollie/api/object/issuer_test.rb +0 -23
  173. data/test/mollie/api/object/list_test.rb +0 -44
  174. data/test/mollie/api/object/method_test.rb +0 -33
  175. data/test/mollie/api/object/organization_test.rb +0 -45
  176. data/test/mollie/api/object/payment/refund_test.rb +0 -46
  177. data/test/mollie/api/object/payment_test.rb +0 -106
  178. data/test/mollie/api/object/permission_test.rb +0 -25
  179. data/test/mollie/api/object/profile/apikey_test.rb +0 -35
  180. data/test/mollie/api/object/profile_test.rb +0 -72
  181. data/test/mollie/api/object/settlement_test.rb +0 -140
  182. data/test/mollie/api/resource/base_test.rb +0 -83
  183. data/test/mollie/api/resource/customers/mandates_test.rb +0 -23
  184. data/test/mollie/api/resource/customers/payments_test.rb +0 -23
  185. data/test/mollie/api/resource/customers/subscriptions_test.rb +0 -23
  186. data/test/mollie/api/resource/customers_test.rb +0 -13
  187. data/test/mollie/api/resource/invoices_test.rb +0 -13
  188. data/test/mollie/api/resource/issuers_test.rb +0 -13
  189. data/test/mollie/api/resource/methods_test.rb +0 -13
  190. data/test/mollie/api/resource/organizations_test.rb +0 -13
  191. data/test/mollie/api/resource/payments/refunds_test.rb +0 -23
  192. data/test/mollie/api/resource/payments_test.rb +0 -13
  193. data/test/mollie/api/resource/permissions_test.rb +0 -13
  194. data/test/mollie/api/resource/profiles/apikeys_test.rb +0 -23
  195. data/test/mollie/api/resource/profiles_test.rb +0 -13
  196. data/test/mollie/api/resource/settlements_test.rb +0 -13
  197. data/test/mollie/api/util_test.rb +0 -47
@@ -1,47 +0,0 @@
1
- module Mollie
2
- module API
3
- module Object
4
- class Payment
5
- class Refund < Base
6
- STATUS_QUEUED = "queued"
7
- STATUS_PENDING = "pending"
8
- STATUS_PROCESSING = "processing"
9
- STATUS_REFUNDED = "refunded"
10
-
11
- attr_accessor :id,
12
- :payment,
13
- :amount,
14
- :status,
15
- :refunded_datetime
16
- def queued?
17
- status == STATUS_QUEUED
18
- end
19
-
20
- def pending?
21
- status == STATUS_PENDING
22
- end
23
-
24
- def processing?
25
- status == STATUS_PROCESSING
26
- end
27
-
28
- def refunded?
29
- status == STATUS_REFUNDED
30
- end
31
-
32
- def refunded_datetime=(refunded_datetime)
33
- @refunded_datetime = Time.parse(refunded_datetime) rescue nil
34
- end
35
-
36
- def amount=(amount)
37
- @amount = BigDecimal.new(amount.to_s) if amount
38
- end
39
-
40
- def payment=(payment)
41
- @payment = Payment.new(payment)
42
- end
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,12 +0,0 @@
1
- module Mollie
2
- module API
3
- module Object
4
- class Permission < Base
5
- attr_accessor :id,
6
- :description,
7
- :warning,
8
- :granted
9
- end
10
- end
11
- end
12
- end
@@ -1,78 +0,0 @@
1
- module Mollie
2
- module API
3
- module Object
4
- class Profile < Base
5
- CATEGORY_CODE_GENERAL_MERCHANDISE = 5399
6
- CATEGORY_CODE_ELECTRONICS_COMPUTERS_AND_SOFTWARE = 5732
7
- CATEGORY_CODE_TRAVEL_RENTAL_AND_TRANSPORTATION = 4121
8
- CATEGORY_CODE_FINANCIAL_SERVICES = 6012
9
- CATEGORY_CODE_FOOD_AND_DRINKS = 5499
10
- CATEGORY_CODE_EVENTS_FESTIVALS_AND_RECREATION = 7999
11
- CATEGORY_CODE_BOOKS_MAGAZINES_AND_NEWSPAPERS = 5192
12
- CATEGORY_CODE_PERSONAL_SERVICES = 7299
13
- CATEGORY_CODE_CHARITY_AND_DONATIONS = 8398
14
- CATEGORY_CODE_OTHER = 0
15
-
16
- STATUS_UNVERIFIED = "unverified"
17
- STATUS_VERIFIED = "verified"
18
- STATUS_BLOCKED = "blocked"
19
-
20
- REVIEW_STATUS_PENDING = "pending"
21
- REVIEW_STATUS_REJECTED = "rejected"
22
-
23
- attr_accessor :id,
24
- :mode,
25
- :name,
26
- :website,
27
- :email,
28
- :phone,
29
- :category_code,
30
- :status,
31
- :review,
32
- :created_datetime,
33
- :updated_datetime,
34
- :links
35
-
36
- def unverified?
37
- status == STATUS_UNVERIFIED
38
- end
39
-
40
- def verified?
41
- status == STATUS_VERIFIED
42
- end
43
-
44
- def blocked?
45
- status == STATUS_BLOCKED
46
- end
47
-
48
- def review=(review)
49
- @review = OpenStruct.new(review) if review.is_a?(Hash)
50
- end
51
-
52
- def review_pending?
53
- @review && @review.status == REVIEW_STATUS_PENDING
54
- end
55
-
56
- def review_rejected?
57
- @review && @review.status == REVIEW_STATUS_REJECTED
58
- end
59
-
60
- def created_datetime=(created_datetime)
61
- @created_datetime = Time.parse(created_datetime.to_s) rescue nil
62
- end
63
-
64
- def updated_datetime=(updated_datetime)
65
- @updated_datetime = Time.parse(updated_datetime.to_s) rescue nil
66
- end
67
-
68
- def apikeys
69
- links && links['apikeys']
70
- end
71
-
72
- def checkout_preview_url
73
- links && links['checkout_preview_url']
74
- end
75
- end
76
- end
77
- end
78
- end
@@ -1,23 +0,0 @@
1
- module Mollie
2
- module API
3
- module Object
4
- class Profile
5
- class ApiKey < Base
6
- attr_accessor :id, :key, :created_datetime
7
-
8
- def testmode?
9
- id == Mollie::API::Client::MODE_TEST
10
- end
11
-
12
- def livemode?
13
- id == Mollie::API::Client::MODE_LIVE
14
- end
15
-
16
- def created_datetime=(created_datetime)
17
- @created_datetime = Time.parse(created_datetime)
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,32 +0,0 @@
1
- module Mollie
2
- module API
3
- module Object
4
- class Settlement < Base
5
- attr_accessor :id,
6
- :reference,
7
- :settled_datetime,
8
- :amount,
9
- :periods,
10
- :payment_ids,
11
- :refund_ids,
12
- :links
13
-
14
- def settled_datetime=(settled_datetime)
15
- @settled_datetime = Time.parse(settled_datetime.to_s) rescue nil
16
- end
17
-
18
- def amount=(amount)
19
- @amount = BigDecimal.new(amount.to_s) if amount
20
- end
21
-
22
- def periods=(periods)
23
- @periods = Util.nested_openstruct(periods) if periods.is_a?(Hash)
24
- end
25
-
26
- def payments
27
- links && links['payments']
28
- end
29
- end
30
- end
31
- end
32
- end
@@ -1,53 +0,0 @@
1
- module Mollie
2
- module API
3
- module Resource
4
- class Base
5
- def initialize(client)
6
- @client = client
7
- end
8
-
9
- def resource_name
10
- self.class.name.downcase.split("::").slice(3..-1).join "/"
11
- end
12
-
13
- def create(data = {})
14
- request("POST", nil, data) { |response|
15
- new_resource_object response
16
- }
17
- end
18
-
19
- def get(id, options = {})
20
- request("GET", id, {}, options) { |response|
21
- new_resource_object response
22
- }
23
- end
24
-
25
- def update(id, data = {})
26
- request("POST", id, data) { |response|
27
- new_resource_object response
28
- }
29
- end
30
-
31
- def delete(id, options = {})
32
- request "DELETE", id, options
33
- end
34
-
35
- def all(offset = 0, limit = 50, options = {})
36
- request("GET", nil, {}, { offset: offset, count: limit }.merge(options)) { |response|
37
- Object::List.new response, resource_object
38
- }
39
- end
40
-
41
- def new_resource_object(response)
42
- resource_object.new response
43
- end
44
-
45
- def request(method, id = 0, data = {}, query = {})
46
- response = @client.perform_http_call method, resource_name, id, data, query
47
-
48
- yield(response) if block_given?
49
- end
50
- end
51
- end
52
- end
53
- end
@@ -1,11 +0,0 @@
1
- module Mollie
2
- module API
3
- module Resource
4
- class Customers < Base
5
- def resource_object
6
- Object::Customer
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,27 +0,0 @@
1
- require 'open-uri'
2
-
3
- module Mollie
4
- module API
5
- module Resource
6
- class Customers
7
- class Mandates < Base
8
- @customer_id = nil
9
-
10
- def resource_object
11
- Object::Customer::Mandate
12
- end
13
-
14
- def resource_name
15
- customer_id = URI::encode(@customer_id)
16
- "customers/#{customer_id}/mandates"
17
- end
18
-
19
- def with(customer_or_id)
20
- @customer_id = customer_or_id.is_a?(Object::Customer) ? customer_or_id.id : customer_or_id
21
- self
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- require 'open-uri'
2
-
3
- module Mollie
4
- module API
5
- module Resource
6
- class Customers
7
- class Payments < Base
8
- @customer_id = nil
9
-
10
- def resource_object
11
- Object::Payment
12
- end
13
-
14
- def resource_name
15
- customer_id = URI::encode(@customer_id)
16
- "customers/#{customer_id}/payments"
17
- end
18
-
19
- def with(customer_or_id)
20
- @customer_id = customer_or_id.is_a?(Object::Customer) ? customer_or_id.id : customer_or_id
21
- self
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- require 'open-uri'
2
-
3
- module Mollie
4
- module API
5
- module Resource
6
- class Customers
7
- class Subscriptions < Base
8
- @customer_id = nil
9
-
10
- def resource_object
11
- Object::Customer::Subscription
12
- end
13
-
14
- def resource_name
15
- customer_id = URI::encode(@customer_id)
16
- "customers/#{customer_id}/subscriptions"
17
- end
18
-
19
- def with(customer_or_id)
20
- @customer_id = customer_or_id.is_a?(Object::Customer) ? customer_or_id.id : customer_or_id
21
- self
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,11 +0,0 @@
1
- module Mollie
2
- module API
3
- module Resource
4
- class Invoices < Base
5
- def resource_object
6
- Object::Invoice
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- module Mollie
2
- module API
3
- module Resource
4
- class Issuers < Base
5
- def resource_object
6
- Object::Issuer
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- module Mollie
2
- module API
3
- module Resource
4
- class Methods < Base
5
- def resource_object
6
- Object::Method
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- module Mollie
2
- module API
3
- module Resource
4
- class Organizations < Base
5
- def resource_object
6
- Object::Organization
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- module Mollie
2
- module API
3
- module Resource
4
- class Payments < Base
5
- def resource_object
6
- Object::Payment
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,27 +0,0 @@
1
- require 'open-uri'
2
-
3
- module Mollie
4
- module API
5
- module Resource
6
- class Payments
7
- class Refunds < Base
8
- @payment_id = nil
9
-
10
- def resource_object
11
- Object::Payment::Refund
12
- end
13
-
14
- def resource_name
15
- payment_id = URI::encode(@payment_id)
16
- "payments/#{payment_id}/refunds"
17
- end
18
-
19
- def with(payment_or_id)
20
- @payment_id = payment_or_id.is_a?(Object::Payment) ? payment_or_id.id : payment_or_id
21
- self
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,31 +0,0 @@
1
- module Mollie
2
- module API
3
- module Resource
4
- class Permissions < Base
5
- def self.available
6
- %w(
7
- payments.read
8
- payments.write
9
- refunds.read
10
- refunds.write
11
- customers.read
12
- customers.write
13
- mandates.read
14
- mandates.write
15
- subscriptions.read
16
- subscriptions.write
17
- profiles.read
18
- profiles.write
19
- invoices.read
20
- settlements.read
21
- organizations.read
22
- organizations.write)
23
- end
24
-
25
- def resource_object
26
- Object::Permission
27
- end
28
- end
29
- end
30
- end
31
- end