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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +7 -0
- data/README.md +37 -8
- data/examples/apis/api_docs.rb +1 -1
- data/examples/apis/chargebacks.rb +17 -0
- data/examples/apis/connect.rb +1 -1
- data/examples/apis/customers.rb +7 -6
- data/examples/apis/invoices.rb +2 -2
- data/examples/apis/issuers.rb +2 -2
- data/examples/apis/mandates.rb +5 -5
- data/examples/apis/methods.rb +2 -2
- data/examples/apis/organizations.rb +1 -1
- data/examples/apis/payments.rb +43 -9
- data/examples/apis/permissions.rb +2 -2
- data/examples/apis/profiles.rb +7 -7
- data/examples/apis/refunds.rb +1 -1
- data/examples/apis/settlements.rb +5 -5
- data/examples/apis/subscriptions.rb +7 -7
- data/examples/config.ru +6 -7
- data/lib/{mollie/api/cacert.pem → cacert.pem} +0 -0
- data/lib/mollie-api-ruby.rb +1 -0
- data/lib/mollie.rb +39 -0
- data/lib/mollie/base.rb +91 -0
- data/lib/mollie/chargeback.rb +36 -0
- data/lib/mollie/client.rb +125 -0
- data/lib/mollie/customer.rb +36 -0
- data/lib/mollie/customer/mandate.rb +33 -0
- data/lib/mollie/customer/payment.rb +6 -0
- data/lib/mollie/customer/subscription.rb +65 -0
- data/lib/mollie/exception.rb +8 -0
- data/lib/mollie/invoice.rb +66 -0
- data/lib/mollie/issuer.rb +5 -0
- data/lib/mollie/list.rb +40 -0
- data/lib/mollie/method.rb +38 -0
- data/lib/mollie/organization.rb +24 -0
- data/lib/mollie/payment.rb +142 -0
- data/lib/mollie/payment/chargeback.rb +6 -0
- data/lib/mollie/payment/refund.rb +6 -0
- data/lib/mollie/permission.rb +26 -0
- data/lib/mollie/profile.rb +78 -0
- data/lib/mollie/profile/api_key.rb +19 -0
- data/lib/mollie/refund.rb +42 -0
- data/lib/mollie/relation.rb +36 -0
- data/lib/mollie/settlement.rb +36 -0
- data/lib/mollie/settlement/chargeback.rb +6 -0
- data/lib/mollie/settlement/payment.rb +6 -0
- data/lib/mollie/settlement/refund.rb +6 -0
- data/lib/mollie/util.rb +57 -0
- data/lib/mollie/version.rb +3 -0
- data/mollie.gemspec +2 -2
- data/test/helper.rb +5 -1
- data/test/mollie/base_test.rb +182 -0
- data/test/mollie/chargeback_test.rb +35 -0
- data/test/mollie/client_test.rb +122 -0
- data/test/mollie/customer/mandate_test.rb +43 -0
- data/test/mollie/customer/payment_test.rb +23 -0
- data/test/mollie/customer/subscription_test.rb +66 -0
- data/test/mollie/customer_test.rb +128 -0
- data/test/mollie/invoice_test.rb +55 -0
- data/test/mollie/issuer_test.rb +19 -0
- data/test/mollie/list_test.rb +40 -0
- data/test/mollie/method_test.rb +29 -0
- data/test/mollie/organization_test.rb +41 -0
- data/test/mollie/payment/chargeback_test.rb +22 -0
- data/test/mollie/payment/refund_test.rb +22 -0
- data/test/mollie/payment_test.rb +161 -0
- data/test/mollie/permission_test.rb +21 -0
- data/test/mollie/profile/apikey_test.rb +31 -0
- data/test/mollie/profile_test.rb +98 -0
- data/test/mollie/refund_test.rb +40 -0
- data/test/mollie/settlement/chargeback_test.rb +22 -0
- data/test/mollie/settlement/payment_test.rb +22 -0
- data/test/mollie/settlement/refund_test.rb +22 -0
- data/test/mollie/settlement_test.rb +156 -0
- data/website-docs/chargebacks/list-all.rb +12 -0
- data/website-docs/connect/authorize.rb +15 -0
- data/website-docs/connect/tokens.rb +14 -0
- data/website-docs/customers/create-payment.rb +13 -0
- data/website-docs/customers/create.rb +12 -0
- data/website-docs/customers/delete.rb +10 -0
- data/website-docs/customers/get.rb +10 -0
- data/website-docs/customers/list-payments.rb +10 -0
- data/website-docs/customers/list.rb +12 -0
- data/website-docs/customers/update.rb +11 -0
- data/website-docs/invoices/get.rb +10 -0
- data/website-docs/invoices/list.rb +12 -0
- data/website-docs/issuers/get.rb +10 -0
- data/website-docs/issuers/list.rb +12 -0
- data/website-docs/mandates/create.rb +16 -0
- data/website-docs/mandates/delete.rb +10 -0
- data/website-docs/mandates/get.rb +10 -0
- data/website-docs/mandates/list.rb +12 -0
- data/website-docs/methods/get.rb +10 -0
- data/website-docs/methods/list.rb +12 -0
- data/website-docs/organisations/get.rb +10 -0
- data/website-docs/payments/create-refund.rb +14 -0
- data/website-docs/payments/create.rb +16 -0
- data/website-docs/payments/delete-refund.rb +13 -0
- data/website-docs/payments/delete.rb +12 -0
- data/website-docs/payments/get-chargeback.rb +11 -0
- data/website-docs/payments/get-refund.rb +11 -0
- data/website-docs/payments/get.rb +10 -0
- data/website-docs/payments/list-chargeback.rb +13 -0
- data/website-docs/payments/list-refunds.rb +13 -0
- data/website-docs/payments/list.rb +12 -0
- data/website-docs/payments/payment-webhook.rb +21 -0
- data/website-docs/permissions/get.rb +10 -0
- data/website-docs/permissions/list.rb +12 -0
- data/website-docs/profiles/create.rb +15 -0
- data/website-docs/profiles/delete.rb +10 -0
- data/website-docs/profiles/get-key.rb +11 -0
- data/website-docs/profiles/get.rb +10 -0
- data/website-docs/profiles/list-keys.rb +13 -0
- data/website-docs/profiles/list.rb +12 -0
- data/website-docs/profiles/reset-key.rb +13 -0
- data/website-docs/profiles/update.rb +12 -0
- data/website-docs/refunds/list.rb +12 -0
- data/website-docs/settlements/get.rb +10 -0
- data/website-docs/settlements/list-chargebacks.rb +13 -0
- data/website-docs/settlements/list-payments.rb +13 -0
- data/website-docs/settlements/list-refunds.rb +13 -0
- data/website-docs/settlements/list.rb +12 -0
- data/website-docs/settlements/next.rb +9 -0
- data/website-docs/settlements/open.rb +9 -0
- data/website-docs/subscriptions/create.rb +14 -0
- data/website-docs/subscriptions/delete.rb +10 -0
- data/website-docs/subscriptions/get.rb +10 -0
- data/website-docs/subscriptions/list.rb +12 -0
- metadata +134 -104
- data/lib/mollie/api/client.rb +0 -161
- data/lib/mollie/api/client/version.rb +0 -7
- data/lib/mollie/api/exception.rb +0 -10
- data/lib/mollie/api/object/base.rb +0 -18
- data/lib/mollie/api/object/customer.rb +0 -28
- data/lib/mollie/api/object/customer/mandate.rb +0 -37
- data/lib/mollie/api/object/customer/subscription.rb +0 -69
- data/lib/mollie/api/object/invoice.rb +0 -70
- data/lib/mollie/api/object/issuer.rb +0 -9
- data/lib/mollie/api/object/list.rb +0 -44
- data/lib/mollie/api/object/method.rb +0 -42
- data/lib/mollie/api/object/organization.rb +0 -28
- data/lib/mollie/api/object/payment.rb +0 -137
- data/lib/mollie/api/object/payment/refund.rb +0 -47
- data/lib/mollie/api/object/permission.rb +0 -12
- data/lib/mollie/api/object/profile.rb +0 -78
- data/lib/mollie/api/object/profile/apikey.rb +0 -23
- data/lib/mollie/api/object/settlement.rb +0 -32
- data/lib/mollie/api/resource/base.rb +0 -53
- data/lib/mollie/api/resource/customers.rb +0 -11
- data/lib/mollie/api/resource/customers/mandates.rb +0 -27
- data/lib/mollie/api/resource/customers/payments.rb +0 -27
- data/lib/mollie/api/resource/customers/subscriptions.rb +0 -27
- data/lib/mollie/api/resource/invoices.rb +0 -11
- data/lib/mollie/api/resource/issuers.rb +0 -11
- data/lib/mollie/api/resource/methods.rb +0 -11
- data/lib/mollie/api/resource/organizations.rb +0 -11
- data/lib/mollie/api/resource/payments.rb +0 -11
- data/lib/mollie/api/resource/payments/refunds.rb +0 -27
- data/lib/mollie/api/resource/permissions.rb +0 -31
- data/lib/mollie/api/resource/profiles.rb +0 -11
- data/lib/mollie/api/resource/profiles/apikeys.rb +0 -33
- data/lib/mollie/api/resource/refunds.rb +0 -11
- data/lib/mollie/api/resource/settlements.rb +0 -19
- data/lib/mollie/api/resource/settlements/payments.rb +0 -27
- data/lib/mollie/api/util.rb +0 -53
- data/test/mollie/api/client_test.rb +0 -111
- data/test/mollie/api/object/base_test.rb +0 -21
- data/test/mollie/api/object/customer/mandate_test.rb +0 -47
- data/test/mollie/api/object/customer/subscription_test.rb +0 -70
- data/test/mollie/api/object/customer_test.rb +0 -35
- data/test/mollie/api/object/invoice_test.rb +0 -59
- data/test/mollie/api/object/issuer_test.rb +0 -23
- data/test/mollie/api/object/list_test.rb +0 -44
- data/test/mollie/api/object/method_test.rb +0 -33
- data/test/mollie/api/object/organization_test.rb +0 -45
- data/test/mollie/api/object/payment/refund_test.rb +0 -46
- data/test/mollie/api/object/payment_test.rb +0 -106
- data/test/mollie/api/object/permission_test.rb +0 -25
- data/test/mollie/api/object/profile/apikey_test.rb +0 -35
- data/test/mollie/api/object/profile_test.rb +0 -72
- data/test/mollie/api/object/settlement_test.rb +0 -140
- data/test/mollie/api/resource/base_test.rb +0 -83
- data/test/mollie/api/resource/customers/mandates_test.rb +0 -23
- data/test/mollie/api/resource/customers/payments_test.rb +0 -23
- data/test/mollie/api/resource/customers/subscriptions_test.rb +0 -23
- data/test/mollie/api/resource/customers_test.rb +0 -13
- data/test/mollie/api/resource/invoices_test.rb +0 -13
- data/test/mollie/api/resource/issuers_test.rb +0 -13
- data/test/mollie/api/resource/methods_test.rb +0 -13
- data/test/mollie/api/resource/organizations_test.rb +0 -13
- data/test/mollie/api/resource/payments/refunds_test.rb +0 -23
- data/test/mollie/api/resource/payments_test.rb +0 -13
- data/test/mollie/api/resource/permissions_test.rb +0 -13
- data/test/mollie/api/resource/profiles/apikeys_test.rb +0 -23
- data/test/mollie/api/resource/profiles_test.rb +0 -13
- data/test/mollie/api/resource/settlements_test.rb +0 -13
- data/test/mollie/api/util_test.rb +0 -47
@@ -0,0 +1,33 @@
|
|
1
|
+
module Mollie
|
2
|
+
class Customer
|
3
|
+
class Mandate < Base
|
4
|
+
STATUS_VALID = "valid"
|
5
|
+
STATUS_INVALID = "invalid"
|
6
|
+
|
7
|
+
attr_accessor :id,
|
8
|
+
:status,
|
9
|
+
:method,
|
10
|
+
:customer_id,
|
11
|
+
:details,
|
12
|
+
:created_datetime,
|
13
|
+
:mandate_reference
|
14
|
+
|
15
|
+
|
16
|
+
def details=(details)
|
17
|
+
@details = OpenStruct.new(details) if details.is_a?(Hash)
|
18
|
+
end
|
19
|
+
|
20
|
+
def created_datetime=(created_datetime)
|
21
|
+
@created_datetime = Time.parse(created_datetime.to_s) rescue nil
|
22
|
+
end
|
23
|
+
|
24
|
+
def valid?
|
25
|
+
status == STATUS_VALID
|
26
|
+
end
|
27
|
+
|
28
|
+
def invalid?
|
29
|
+
status == STATUS_INVALID
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Mollie
|
2
|
+
class Customer
|
3
|
+
class Subscription < Base
|
4
|
+
STATUS_ACTIVE = "active"
|
5
|
+
STATUS_PENDING = "pending" # Waiting for a valid mandate.
|
6
|
+
STATUS_CANCELLED = "cancelled"
|
7
|
+
STATUS_SUSPENDED = "suspended" # Active, but mandate became invalid.
|
8
|
+
STATUS_COMPLETED = "completed"
|
9
|
+
|
10
|
+
attr_accessor :resource,
|
11
|
+
:id,
|
12
|
+
:customer_id,
|
13
|
+
:mode,
|
14
|
+
:created_datetime,
|
15
|
+
:status,
|
16
|
+
:amount,
|
17
|
+
:times,
|
18
|
+
:interval,
|
19
|
+
:description,
|
20
|
+
:method,
|
21
|
+
:cancelled_datetime,
|
22
|
+
:links
|
23
|
+
|
24
|
+
def active?
|
25
|
+
status == STATUS_ACTIVE
|
26
|
+
end
|
27
|
+
|
28
|
+
def pending?
|
29
|
+
status == STATUS_PENDING
|
30
|
+
end
|
31
|
+
|
32
|
+
def suspended?
|
33
|
+
status == STATUS_SUSPENDED
|
34
|
+
end
|
35
|
+
|
36
|
+
def cancelled?
|
37
|
+
status == STATUS_CANCELLED
|
38
|
+
end
|
39
|
+
|
40
|
+
def completed?
|
41
|
+
status == STATUS_COMPLETED
|
42
|
+
end
|
43
|
+
|
44
|
+
def created_datetime=(created_datetime)
|
45
|
+
@created_datetime = Time.parse(created_datetime.to_s) rescue nil
|
46
|
+
end
|
47
|
+
|
48
|
+
def cancelled_datetime=(cancelled_datetime)
|
49
|
+
@cancelled_datetime = Time.parse(cancelled_datetime.to_s) rescue nil
|
50
|
+
end
|
51
|
+
|
52
|
+
def amount=(amount)
|
53
|
+
@amount = BigDecimal.new(amount.to_s)
|
54
|
+
end
|
55
|
+
|
56
|
+
def times=(times)
|
57
|
+
@times = times.to_i
|
58
|
+
end
|
59
|
+
|
60
|
+
def webhook_url
|
61
|
+
links && links['webhook_url']
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
module Mollie
|
2
|
+
class Invoice < Base
|
3
|
+
STATUS_OPEN = "open"
|
4
|
+
STATUS_PAID = "paid"
|
5
|
+
STATUS_OVERDUE = "overdue"
|
6
|
+
|
7
|
+
class Amount < Base
|
8
|
+
attr_accessor :net, :vat, :gross
|
9
|
+
|
10
|
+
def net=(net)
|
11
|
+
@net = BigDecimal.new(net.to_s)
|
12
|
+
end
|
13
|
+
|
14
|
+
def vat=(vat)
|
15
|
+
@vat = BigDecimal.new(vat.to_s, 2)
|
16
|
+
end
|
17
|
+
|
18
|
+
def gross=(gross)
|
19
|
+
@gross = BigDecimal.new(gross.to_s)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class Line < Base
|
24
|
+
attr_accessor :period, :description, :count, :vat_percentage, :amount
|
25
|
+
|
26
|
+
def amount=(amount)
|
27
|
+
@amount = BigDecimal.new(amount.to_s)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
attr_accessor :resource, :id, :reference, :vat_number, :status,
|
32
|
+
:issue_date, :due_date, :amount, :lines, :links
|
33
|
+
|
34
|
+
def open?
|
35
|
+
status == STATUS_OPEN
|
36
|
+
end
|
37
|
+
|
38
|
+
def paid?
|
39
|
+
status == STATUS_PAID
|
40
|
+
end
|
41
|
+
|
42
|
+
def overdue?
|
43
|
+
status == STATUS_OVERDUE
|
44
|
+
end
|
45
|
+
|
46
|
+
def amount=(amount)
|
47
|
+
@amount = Amount.new(amount)
|
48
|
+
end
|
49
|
+
|
50
|
+
def issue_date=(issue_date)
|
51
|
+
@issue_date = Time.parse(issue_date) rescue nil
|
52
|
+
end
|
53
|
+
|
54
|
+
def due_date=(due_date)
|
55
|
+
@due_date = Time.parse(due_date) rescue nil
|
56
|
+
end
|
57
|
+
|
58
|
+
def lines=(lines)
|
59
|
+
@lines = lines.map { |line| Line.new(line) }
|
60
|
+
end
|
61
|
+
|
62
|
+
def pdf
|
63
|
+
links && links['pdf']
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
data/lib/mollie/list.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
module Mollie
|
2
|
+
class List < Base
|
3
|
+
include Enumerable
|
4
|
+
|
5
|
+
attr_accessor :total_count,
|
6
|
+
:offset,
|
7
|
+
:count,
|
8
|
+
:links,
|
9
|
+
:data
|
10
|
+
|
11
|
+
def initialize(list_attributes, klass)
|
12
|
+
list_attributes['data'] ||= []
|
13
|
+
super list_attributes
|
14
|
+
|
15
|
+
@data = self.data.map do |attributes|
|
16
|
+
klass.new attributes
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def each(&block)
|
21
|
+
@data.each(&block)
|
22
|
+
end
|
23
|
+
|
24
|
+
def first_url
|
25
|
+
links && links['first']
|
26
|
+
end
|
27
|
+
|
28
|
+
def previous_url
|
29
|
+
links && links['previous']
|
30
|
+
end
|
31
|
+
|
32
|
+
def next_url
|
33
|
+
links && links['next']
|
34
|
+
end
|
35
|
+
|
36
|
+
def last_url
|
37
|
+
links && links['last']
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Mollie
|
2
|
+
class Method < Base
|
3
|
+
IDEAL = "ideal"
|
4
|
+
CREDITCARD = "creditcard"
|
5
|
+
MISTERCASH = "mistercash"
|
6
|
+
SOFORT = "sofort"
|
7
|
+
BANKTRANSFER = "banktransfer"
|
8
|
+
DIRECTDEBIT = "directdebit"
|
9
|
+
BITCOIN = "bitcoin"
|
10
|
+
PAYPAL = "paypal"
|
11
|
+
KBC = "kbc"
|
12
|
+
BELFIUS = "belfius"
|
13
|
+
PAYSAFECARD = "paysafecard"
|
14
|
+
PODIUMCADEAUKAART = "podiumcadeaukaart"
|
15
|
+
GIFTCARD = "giftcard"
|
16
|
+
|
17
|
+
attr_accessor :id,
|
18
|
+
:description,
|
19
|
+
:amount,
|
20
|
+
:image
|
21
|
+
|
22
|
+
def normal_image
|
23
|
+
image['normal']
|
24
|
+
end
|
25
|
+
|
26
|
+
def bigger_image
|
27
|
+
image['bigger']
|
28
|
+
end
|
29
|
+
|
30
|
+
def minimum_amount
|
31
|
+
BigDecimal.new(amount['minimum'].to_s)
|
32
|
+
end
|
33
|
+
|
34
|
+
def maximum_amount
|
35
|
+
BigDecimal.new(amount['maximum'].to_s)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Mollie
|
2
|
+
class Organization < Base
|
3
|
+
attr_accessor :id,
|
4
|
+
:name,
|
5
|
+
:email,
|
6
|
+
:address,
|
7
|
+
:postal_code,
|
8
|
+
:city,
|
9
|
+
:country,
|
10
|
+
:country_code,
|
11
|
+
:registration_type,
|
12
|
+
:registration_number,
|
13
|
+
:registration_datetime,
|
14
|
+
:verified_datetime
|
15
|
+
|
16
|
+
def registration_datetime=(registration_datetime)
|
17
|
+
@registration_datetime = Time.parse(registration_datetime.to_s) rescue nil
|
18
|
+
end
|
19
|
+
|
20
|
+
def verified_datetime=(verified_datetime)
|
21
|
+
@verified_datetime = Time.parse(verified_datetime.to_s) rescue nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,142 @@
|
|
1
|
+
module Mollie
|
2
|
+
class Payment < Base
|
3
|
+
STATUS_OPEN = "open"
|
4
|
+
STATUS_CANCELLED = "cancelled"
|
5
|
+
STATUS_EXPIRED = "expired"
|
6
|
+
STATUS_PAID = "paid"
|
7
|
+
STATUS_PAIDOUT = "paidout"
|
8
|
+
STATUS_FAILED = "failed"
|
9
|
+
STATUS_REFUNDED = "refunded"
|
10
|
+
STATUS_PENDING = "pending"
|
11
|
+
STATUS_CHARGED_BACK = "charged_back"
|
12
|
+
|
13
|
+
RECURRINGTYPE_NONE = nil
|
14
|
+
RECURRINGTYPE_FIRST = "first"
|
15
|
+
RECURRINGTYPE_RECURRING = "recurring"
|
16
|
+
|
17
|
+
attr_accessor :id,
|
18
|
+
:mode,
|
19
|
+
:created_datetime,
|
20
|
+
:status,
|
21
|
+
:paid_datetime,
|
22
|
+
:cancelled_datetime,
|
23
|
+
:expired_datetime,
|
24
|
+
:expiry_period,
|
25
|
+
:amount,
|
26
|
+
:amount_refunded,
|
27
|
+
:amount_remaining,
|
28
|
+
:description,
|
29
|
+
:method,
|
30
|
+
:metadata,
|
31
|
+
:locale,
|
32
|
+
:profile_id,
|
33
|
+
:settlement_id,
|
34
|
+
:customer_id,
|
35
|
+
:recurring_type,
|
36
|
+
:mandate_id,
|
37
|
+
:subscription_id,
|
38
|
+
:country_code,
|
39
|
+
:links,
|
40
|
+
:details
|
41
|
+
|
42
|
+
def open?
|
43
|
+
status == STATUS_OPEN
|
44
|
+
end
|
45
|
+
|
46
|
+
def cancelled?
|
47
|
+
status == STATUS_CANCELLED
|
48
|
+
end
|
49
|
+
|
50
|
+
def expired?
|
51
|
+
status == STATUS_EXPIRED
|
52
|
+
end
|
53
|
+
|
54
|
+
def paid?
|
55
|
+
!!paid_datetime
|
56
|
+
end
|
57
|
+
|
58
|
+
def paidout?
|
59
|
+
status == STATUS_PAIDOUT
|
60
|
+
end
|
61
|
+
|
62
|
+
def refunded?
|
63
|
+
status == STATUS_REFUNDED
|
64
|
+
end
|
65
|
+
|
66
|
+
def failed?
|
67
|
+
status == STATUS_FAILED
|
68
|
+
end
|
69
|
+
|
70
|
+
def pending?
|
71
|
+
status == STATUS_PENDING
|
72
|
+
end
|
73
|
+
|
74
|
+
def charged_back?
|
75
|
+
status == STATUS_CHARGED_BACK
|
76
|
+
end
|
77
|
+
|
78
|
+
def details=(details)
|
79
|
+
@details = OpenStruct.new(details) if details.is_a?(Hash)
|
80
|
+
end
|
81
|
+
|
82
|
+
def metadata=(metadata)
|
83
|
+
@metadata = OpenStruct.new(metadata) if metadata.is_a?(Hash)
|
84
|
+
end
|
85
|
+
|
86
|
+
def created_datetime=(created_datetime)
|
87
|
+
@created_datetime = Time.parse(created_datetime.to_s) rescue nil
|
88
|
+
end
|
89
|
+
|
90
|
+
def paid_datetime=(paid_datetime)
|
91
|
+
@paid_datetime = Time.parse(paid_datetime.to_s) rescue nil
|
92
|
+
end
|
93
|
+
|
94
|
+
def cancelled_datetime=(cancelled_datetime)
|
95
|
+
@cancelled_datetime = Time.parse(cancelled_datetime.to_s) rescue nil
|
96
|
+
end
|
97
|
+
|
98
|
+
def expired_datetime=(expired_datetime)
|
99
|
+
@expired_datetime = Time.parse(expired_datetime.to_s) rescue nil
|
100
|
+
end
|
101
|
+
|
102
|
+
def amount=(amount)
|
103
|
+
@amount = BigDecimal.new(amount.to_s) if amount
|
104
|
+
end
|
105
|
+
|
106
|
+
def amount_remaining=(amount_remaining)
|
107
|
+
@amount_remaining = BigDecimal.new(amount_remaining.to_s) if amount_remaining
|
108
|
+
end
|
109
|
+
|
110
|
+
def amount_refunded=(amount_refunded)
|
111
|
+
@amount_refunded = BigDecimal.new(amount_refunded.to_s) if amount_refunded
|
112
|
+
end
|
113
|
+
|
114
|
+
def payment_url
|
115
|
+
links && links['payment_url']
|
116
|
+
end
|
117
|
+
|
118
|
+
def webhook_url
|
119
|
+
links && links['webhook_url']
|
120
|
+
end
|
121
|
+
|
122
|
+
def redirect_url
|
123
|
+
links && links['redirect_url']
|
124
|
+
end
|
125
|
+
|
126
|
+
def refunds_url
|
127
|
+
links && links['refunds']
|
128
|
+
end
|
129
|
+
|
130
|
+
def settlement
|
131
|
+
links && links['settlement']
|
132
|
+
end
|
133
|
+
|
134
|
+
def refunds
|
135
|
+
Relation.new(self, Payment::Refund)
|
136
|
+
end
|
137
|
+
|
138
|
+
def chargebacks
|
139
|
+
Relation.new(self, Payment::Chargeback)
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|