mollie-api-ruby 2.1.0 → 2.2.0

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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +0 -2
  3. data/CHANGELOG.md +4 -0
  4. data/{README.mdown → README.md} +8 -8
  5. data/examples/1-new-payment.rb +4 -2
  6. data/examples/4-ideal-payment.rb +4 -2
  7. data/lib/mollie/api/client.rb +32 -13
  8. data/lib/mollie/api/client/version.rb +1 -1
  9. data/lib/mollie/api/object/customer/mandate.rb +37 -0
  10. data/lib/mollie/api/object/customer/subscription.rb +69 -0
  11. data/lib/mollie/api/object/organization.rb +28 -0
  12. data/lib/mollie/api/object/permission.rb +12 -0
  13. data/lib/mollie/api/object/profile.rb +78 -0
  14. data/lib/mollie/api/object/profile/apikey.rb +23 -0
  15. data/lib/mollie/api/object/settlement.rb +32 -0
  16. data/lib/mollie/api/resource/customers/mandates.rb +1 -1
  17. data/lib/mollie/api/resource/customers/subscriptions.rb +1 -1
  18. data/lib/mollie/api/resource/organizations.rb +11 -0
  19. data/lib/mollie/api/resource/permissions.rb +11 -0
  20. data/lib/mollie/api/resource/profiles.rb +11 -0
  21. data/lib/mollie/api/resource/profiles/apikeys.rb +27 -0
  22. data/lib/mollie/api/resource/settlements.rb +11 -0
  23. data/lib/mollie/api/util.rb +46 -30
  24. data/test/mollie/api/client_test.rb +9 -4
  25. data/test/mollie/api/object/customer/mandate_test.rb +47 -0
  26. data/test/mollie/api/object/customer/subscription_test.rb +70 -0
  27. data/test/mollie/api/object/organization_test.rb +51 -0
  28. data/test/mollie/api/object/permission_test.rb +25 -0
  29. data/test/mollie/api/object/profile/apikey_test.rb +35 -0
  30. data/test/mollie/api/object/profile_test.rb +72 -0
  31. data/test/mollie/api/object/settlement_test.rb +140 -0
  32. data/test/mollie/api/resource/customers/mandates_test.rb +1 -1
  33. data/test/mollie/api/resource/customers/subscriptions_test.rb +1 -1
  34. data/test/mollie/api/resource/organizations_test.rb +13 -0
  35. data/test/mollie/api/resource/permissions_test.rb +13 -0
  36. data/test/mollie/api/resource/profiles/apikeys_test.rb +23 -0
  37. data/test/mollie/api/resource/profiles_test.rb +13 -0
  38. data/test/mollie/api/resource/settlements_test.rb +13 -0
  39. data/test/mollie/api/util_test.rb +47 -0
  40. metadata +42 -10
  41. data/lib/mollie/api/object/mandate.rb +0 -35
  42. data/lib/mollie/api/object/subscription.rb +0 -67
  43. data/test/mollie/api/object/mandate_test.rb +0 -45
  44. data/test/mollie/api/object/subscription_test.rb +0 -68
@@ -1,35 +0,0 @@
1
- module Mollie
2
- module API
3
- module Object
4
- class Mandate < Base
5
- STATUS_VALID = "valid"
6
- STATUS_INVALID = "invalid"
7
-
8
- attr_accessor :id,
9
- :status,
10
- :method,
11
- :customer_id,
12
- :details,
13
- :created_datetime,
14
- :mandate_reference
15
-
16
-
17
- def details=(details)
18
- @details = OpenStruct.new(details) if details.is_a?(Hash)
19
- end
20
-
21
- def created_datetime=(created_datetime)
22
- @created_datetime = Time.parse(created_datetime.to_s) rescue nil
23
- end
24
-
25
- def valid?
26
- status == STATUS_VALID
27
- end
28
-
29
- def invalid?
30
- status == STATUS_INVALID
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,67 +0,0 @@
1
- module Mollie
2
- module API
3
- module Object
4
- class Subscription < Base
5
- STATUS_ACTIVE = "active"
6
- STATUS_PENDING = "pending" # Waiting for a valid mandate.
7
- STATUS_CANCELLED = "cancelled"
8
- STATUS_SUSPENDED = "suspended" # Active, but mandate became invalid.
9
- STATUS_COMPLETED = "completed"
10
-
11
- attr_accessor :resource,
12
- :id,
13
- :customer_id,
14
- :mode,
15
- :created_datetime,
16
- :status,
17
- :amount,
18
- :times,
19
- :interval,
20
- :description,
21
- :method,
22
- :cancelled_datetime,
23
- :links
24
-
25
- def active?
26
- status == STATUS_ACTIVE
27
- end
28
-
29
- def pending?
30
- status == STATUS_PENDING
31
- end
32
-
33
- def suspended?
34
- status == STATUS_SUSPENDED
35
- end
36
-
37
- def cancelled?
38
- status == STATUS_CANCELLED
39
- end
40
-
41
- def completed?
42
- status == STATUS_COMPLETED
43
- end
44
-
45
- def created_datetime=(created_datetime)
46
- @created_datetime = Time.parse(created_datetime.to_s) rescue nil
47
- end
48
-
49
- def cancelled_datetime=(cancelled_datetime)
50
- @cancelled_datetime = Time.parse(cancelled_datetime.to_s) rescue nil
51
- end
52
-
53
- def amount=(amount)
54
- @amount = BigDecimal.new(amount.to_s)
55
- end
56
-
57
- def times=(times)
58
- @times = times.to_i
59
- end
60
-
61
- def webhook_url
62
- links && links['webhook_url']
63
- end
64
- end
65
- end
66
- end
67
- end
@@ -1,45 +0,0 @@
1
- require 'helper'
2
-
3
- module Mollie
4
- module API
5
- module Object
6
- class MandateTest < Test::Unit::TestCase
7
- def test_setting_attributes
8
- attributes = {
9
- id: "mdt_qtUgejVgMN",
10
- status: "valid",
11
- method: "creditcard",
12
- customer_id: "cst_R6JLAuqEgm",
13
- details: {
14
- card_holder: "John Doe",
15
- card_expiry_date: "2016-03-31"
16
- },
17
- created_datetime: "2016-04-13T11:32:38.0Z"
18
- }
19
-
20
- mandate = Mandate.new(attributes)
21
-
22
- assert_equal 'mdt_qtUgejVgMN', mandate.id
23
- assert_equal 'valid', mandate.status
24
- assert_equal 'creditcard', mandate.method
25
- assert_equal 'cst_R6JLAuqEgm', mandate.customer_id
26
- assert_equal Time.parse('2016-04-13T11:32:38.0Z'), mandate.created_datetime
27
-
28
- assert_equal 'John Doe', mandate.details.card_holder
29
- assert_equal '2016-03-31', mandate.details.card_expiry_date
30
- assert_equal nil, mandate.details.non_existing
31
- end
32
-
33
- def test_valid_invalid
34
- mandate = Mandate.new(status: Mandate::STATUS_VALID)
35
- assert mandate.valid?
36
- assert !mandate.invalid?
37
-
38
- mandate = Mandate.new(status: Mandate::STATUS_INVALID)
39
- assert !mandate.valid?
40
- assert mandate.invalid?
41
- end
42
- end
43
- end
44
- end
45
- end
@@ -1,68 +0,0 @@
1
- require 'helper'
2
-
3
- module Mollie
4
- module API
5
- module Object
6
- class SubscriptionTest < Test::Unit::TestCase
7
- def test_setting_attributes
8
- attributes = {
9
- id: "sub_rVKGtNd6s3",
10
- customer_id: "cst_stTC2WHAuS",
11
- mode: "live",
12
- created_datetime: "2016-06-01T12:23:34.0Z",
13
- status: "active",
14
- amount: "25.00",
15
- times: 4,
16
- interval: "3 months",
17
- description: "Quarterly payment",
18
- method: "creditcard",
19
- cancelled_datetime: "2016-06-01T12:23:34.0Z",
20
- links: {
21
- 'webhook_url' => "https://example.org/payments/webhook"
22
- }
23
- }
24
-
25
- subscription = Subscription.new(attributes)
26
-
27
- assert_equal "sub_rVKGtNd6s3", subscription.id
28
- assert_equal "cst_stTC2WHAuS", subscription.customer_id
29
- assert_equal "live", subscription.mode
30
- assert_equal Time.parse("2016-06-01T12:23:34.0Z"), subscription.created_datetime
31
- assert_equal "active", subscription.status
32
- assert_equal BigDecimal.new(25, 2), subscription.amount
33
- assert_equal 4, subscription.times
34
- assert_equal "3 months", subscription.interval
35
- assert_equal "Quarterly payment", subscription.description
36
- assert_equal "creditcard", subscription.method
37
- assert_equal Time.parse("2016-06-01T12:23:34.0Z"), subscription.cancelled_datetime
38
- assert_equal "https://example.org/payments/webhook", subscription.webhook_url
39
- end
40
-
41
- def test_status_active
42
- assert Subscription.new(status: Subscription::STATUS_ACTIVE).active?
43
- assert !Subscription.new(status: 'not-active').active?
44
- end
45
-
46
- def test_status_pending
47
- assert Subscription.new(status: Subscription::STATUS_PENDING).pending?
48
- assert !Subscription.new(status: 'not-pending').pending?
49
- end
50
-
51
- def test_status_suspended
52
- assert Subscription.new(status: Subscription::STATUS_SUSPENDED).suspended?
53
- assert !Subscription.new(status: 'not-suspended').suspended?
54
- end
55
-
56
- def test_status_cancelled
57
- assert Subscription.new(status: Subscription::STATUS_CANCELLED).cancelled?
58
- assert !Subscription.new(status: 'not-cancelled').cancelled?
59
- end
60
-
61
- def test_status_completed
62
- assert Subscription.new(status: Subscription::STATUS_COMPLETED).completed?
63
- assert !Subscription.new(status: 'not-completed').completed?
64
- end
65
- end
66
- end
67
- end
68
- end