Skip to content

Commit ac9584d

Browse files
committed
added EventReason and EventReasonRequest type to thin_event.rb
updated tests
1 parent 57d0f0a commit ac9584d

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

lib/stripe/thin_event.rb

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,24 @@
11
# frozen_string_literal: true
22

33
module Stripe
4+
class EventReasonRequest
5+
attr_reader :id, :idempotency_key
6+
7+
def initialize(event_reason_request_payload = {})
8+
@id = event_reason_request_payload[:id]
9+
@idempotency_key = event_reason_request_payload[:idempotency_key]
10+
end
11+
end
12+
13+
class EventReason
14+
attr_reader :type, :request
15+
16+
def initialize(event_reason_payload = {})
17+
@type = event_reason_payload[:type]
18+
@request = EventReasonRequest.new(event_reason_payload[:request])
19+
end
20+
end
21+
422
class ThinEvent
523
attr_reader :id, :type, :created, :context, :related_object, :livemode, :reason
624

@@ -11,7 +29,9 @@ def initialize(event_payload = {})
1129
@context = event_payload[:context]
1230
@livemode = event_payload[:livemode]
1331
@related_object = event_payload[:related_object]
14-
@reason = event_payload[:reason]
32+
return if event_payload[:reason].nil?
33+
34+
@reason = EventReason.new(event_payload[:reason])
1535
end
1636
end
1737
end

test/stripe/v2_event_test.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ def retrieve_event(evt_id)
9696
assert_equal "evt_234", event.id
9797
assert_equal "v1.billing.meter.error_report_triggered", event.type
9898
assert_equal "2022-02-15T00:27:45.330Z", event.created
99+
assert_nil event.reason
99100
end
100101

101102
should "parse v2 events with livemode and reason" do
@@ -106,9 +107,9 @@ def retrieve_event(evt_id)
106107
assert_equal "2022-02-15T00:27:45.330Z", event.created
107108
assert_true event.livemode
108109
assert_not_nil event.reason
109-
assert_equal "a.b.c", event.reason[:type]
110-
assert_equal "r_123", event.reason[:request][:id]
111-
assert_equal "key", event.reason[:request][:idempotency_key]
110+
assert_equal "a.b.c", event.reason.type
111+
assert_equal "r_123", event.reason.request.id
112+
assert_equal "key", event.reason.request.idempotency_key
112113
end
113114

114115
should "raise a JSON::ParserError from an invalid JSON payload" do

0 commit comments

Comments
 (0)