stigg 0.1.0.pre.alpha.1 → 0.1.0.pre.alpha.2

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 (124) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +29 -1
  4. data/lib/stigg/internal/my_cursor_id_page.rb +32 -4
  5. data/lib/stigg/models/v1/coupon_create_params.rb +2 -0
  6. data/lib/stigg/models/v1/coupon_create_response.rb +11 -6
  7. data/lib/stigg/models/v1/coupon_list_params.rb +14 -14
  8. data/lib/stigg/models/v1/coupon_list_response.rb +262 -278
  9. data/lib/stigg/models/v1/coupon_retrieve_response.rb +11 -6
  10. data/lib/stigg/models/v1/customer_create_params.rb +2 -0
  11. data/lib/stigg/models/v1/customer_list_params.rb +14 -14
  12. data/lib/stigg/models/v1/customer_list_response.rb +160 -174
  13. data/lib/stigg/models/v1/customer_response.rb +8 -1
  14. data/lib/stigg/models/v1/customer_update_params.rb +2 -0
  15. data/lib/stigg/models/v1/customers/payment_method_attach_params.rb +3 -1
  16. data/lib/stigg/models/v1/subscription_create_params.rb +1485 -6
  17. data/lib/stigg/models/v1/subscription_create_response.rb +703 -4
  18. data/lib/stigg/models/v1/subscription_delegate_params.rb +7 -2
  19. data/lib/stigg/models/v1/subscription_delegate_response.rb +42 -2
  20. data/lib/stigg/models/v1/subscription_list_params.rb +20 -24
  21. data/lib/stigg/models/v1/subscription_list_response.rb +255 -236
  22. data/lib/stigg/models/v1/subscription_migrate_params.rb +3 -3
  23. data/lib/stigg/models/v1/subscription_migrate_response.rb +42 -2
  24. data/lib/stigg/models/v1/subscription_preview_params.rb +139 -46
  25. data/lib/stigg/models/v1/subscription_preview_response.rb +164 -49
  26. data/lib/stigg/models/v1/subscription_retrieve_response.rb +42 -2
  27. data/lib/stigg/models/v1/subscription_transfer_params.rb +2 -6
  28. data/lib/stigg/models/v1/subscription_transfer_response.rb +42 -2
  29. data/lib/stigg/models/v1/subscriptions/future_update_cancel_pending_payment_response.rb +2 -0
  30. data/lib/stigg/models/v1/subscriptions/future_update_cancel_schedule_response.rb +2 -0
  31. data/lib/stigg/models/v1_create_event_params.rb +2 -0
  32. data/lib/stigg/models/v1_create_event_response.rb +8 -1
  33. data/lib/stigg/models/v1_create_usage_params.rb +19 -3
  34. data/lib/stigg/models/v1_create_usage_response.rb +7 -1
  35. data/lib/stigg/resources/v1/coupons.rb +12 -10
  36. data/lib/stigg/resources/v1/customers/payment_method.rb +6 -5
  37. data/lib/stigg/resources/v1/customers/usage.rb +0 -41
  38. data/lib/stigg/resources/v1/customers.rb +20 -20
  39. data/lib/stigg/resources/v1/subscriptions/future_update.rb +6 -4
  40. data/lib/stigg/resources/v1/subscriptions.rb +74 -49
  41. data/lib/stigg/resources/v1.rb +2 -2
  42. data/lib/stigg/version.rb +1 -1
  43. data/lib/stigg.rb +0 -7
  44. data/rbi/stigg/internal/my_cursor_id_page.rbi +27 -0
  45. data/rbi/stigg/models/v1/coupon_create_params.rbi +1 -0
  46. data/rbi/stigg/models/v1/coupon_create_response.rbi +11 -10
  47. data/rbi/stigg/models/v1/coupon_list_params.rbi +21 -21
  48. data/rbi/stigg/models/v1/coupon_list_response.rbi +812 -869
  49. data/rbi/stigg/models/v1/coupon_retrieve_response.rbi +11 -10
  50. data/rbi/stigg/models/v1/customer_create_params.rbi +1 -0
  51. data/rbi/stigg/models/v1/customer_list_params.rbi +21 -21
  52. data/rbi/stigg/models/v1/customer_list_response.rbi +307 -347
  53. data/rbi/stigg/models/v1/customer_response.rbi +8 -1
  54. data/rbi/stigg/models/v1/customer_update_params.rbi +1 -0
  55. data/rbi/stigg/models/v1/customers/payment_method_attach_params.rbi +3 -0
  56. data/rbi/stigg/models/v1/subscription_create_params.rbi +4975 -84
  57. data/rbi/stigg/models/v1/subscription_create_response.rbi +2508 -1
  58. data/rbi/stigg/models/v1/subscription_delegate_params.rbi +6 -2
  59. data/rbi/stigg/models/v1/subscription_delegate_response.rbi +84 -1
  60. data/rbi/stigg/models/v1/subscription_list_params.rbi +26 -28
  61. data/rbi/stigg/models/v1/subscription_list_response.rbi +460 -435
  62. data/rbi/stigg/models/v1/subscription_migrate_params.rbi +3 -3
  63. data/rbi/stigg/models/v1/subscription_migrate_response.rbi +84 -1
  64. data/rbi/stigg/models/v1/subscription_preview_params.rbi +112 -14
  65. data/rbi/stigg/models/v1/subscription_preview_response.rbi +139 -6
  66. data/rbi/stigg/models/v1/subscription_retrieve_response.rbi +84 -1
  67. data/rbi/stigg/models/v1/subscription_transfer_params.rbi +2 -4
  68. data/rbi/stigg/models/v1/subscription_transfer_response.rbi +84 -1
  69. data/rbi/stigg/models/v1/subscriptions/future_update_cancel_pending_payment_response.rbi +1 -0
  70. data/rbi/stigg/models/v1/subscriptions/future_update_cancel_schedule_response.rbi +1 -0
  71. data/rbi/stigg/models/v1_create_event_params.rbi +1 -0
  72. data/rbi/stigg/models/v1_create_event_response.rbi +8 -1
  73. data/rbi/stigg/models/v1_create_usage_params.rbi +44 -4
  74. data/rbi/stigg/models/v1_create_usage_response.rbi +8 -1
  75. data/rbi/stigg/resources/v1/coupons.rbi +20 -12
  76. data/rbi/stigg/resources/v1/customers/payment_method.rbi +9 -3
  77. data/rbi/stigg/resources/v1/customers/usage.rbi +0 -29
  78. data/rbi/stigg/resources/v1/customers.rbi +34 -20
  79. data/rbi/stigg/resources/v1/subscriptions/future_update.rbi +12 -4
  80. data/rbi/stigg/resources/v1/subscriptions.rbi +102 -23
  81. data/rbi/stigg/resources/v1.rbi +2 -2
  82. data/sig/stigg/internal/my_cursor_id_page.rbs +17 -0
  83. data/sig/stigg/models/v1/coupon_create_response.rbs +4 -4
  84. data/sig/stigg/models/v1/coupon_list_params.rbs +11 -11
  85. data/sig/stigg/models/v1/coupon_list_response.rbs +331 -351
  86. data/sig/stigg/models/v1/coupon_retrieve_response.rbs +4 -4
  87. data/sig/stigg/models/v1/customer_list_params.rbs +11 -11
  88. data/sig/stigg/models/v1/customer_list_response.rbs +133 -153
  89. data/sig/stigg/models/v1/subscription_create_params.rbs +2029 -5
  90. data/sig/stigg/models/v1/subscription_create_response.rbs +1022 -0
  91. data/sig/stigg/models/v1/subscription_delegate_response.rbs +31 -0
  92. data/sig/stigg/models/v1/subscription_list_params.rbs +14 -14
  93. data/sig/stigg/models/v1/subscription_list_response.rbs +196 -189
  94. data/sig/stigg/models/v1/subscription_migrate_response.rbs +31 -0
  95. data/sig/stigg/models/v1/subscription_preview_params.rbs +2 -6
  96. data/sig/stigg/models/v1/subscription_retrieve_response.rbs +31 -0
  97. data/sig/stigg/models/v1/subscription_transfer_response.rbs +31 -0
  98. data/sig/stigg/models/v1_create_usage_params.rbs +15 -5
  99. data/sig/stigg/resources/v1/coupons.rbs +3 -3
  100. data/sig/stigg/resources/v1/customers/usage.rbs +0 -10
  101. data/sig/stigg/resources/v1/customers.rbs +3 -5
  102. data/sig/stigg/resources/v1/subscriptions.rbs +19 -4
  103. metadata +2 -23
  104. data/lib/stigg/models/v1/customers/promotional_create_params.rb +0 -294
  105. data/lib/stigg/models/v1/customers/promotional_create_response.rb +0 -268
  106. data/lib/stigg/models/v1/customers/promotional_revoke_params.rb +0 -24
  107. data/lib/stigg/models/v1/customers/promotional_revoke_response.rb +0 -268
  108. data/lib/stigg/models/v1/customers/usage_retrieve_params.rb +0 -56
  109. data/lib/stigg/models/v1/customers/usage_retrieve_response.rb +0 -145
  110. data/lib/stigg/resources/v1/customers/promotional.rb +0 -69
  111. data/rbi/stigg/models/v1/customers/promotional_create_params.rbi +0 -639
  112. data/rbi/stigg/models/v1/customers/promotional_create_response.rbi +0 -495
  113. data/rbi/stigg/models/v1/customers/promotional_revoke_params.rbi +0 -42
  114. data/rbi/stigg/models/v1/customers/promotional_revoke_response.rbi +0 -497
  115. data/rbi/stigg/models/v1/customers/usage_retrieve_params.rbi +0 -84
  116. data/rbi/stigg/models/v1/customers/usage_retrieve_response.rbi +0 -353
  117. data/rbi/stigg/resources/v1/customers/promotional.rbi +0 -53
  118. data/sig/stigg/models/v1/customers/promotional_create_params.rbs +0 -234
  119. data/sig/stigg/models/v1/customers/promotional_create_response.rbs +0 -209
  120. data/sig/stigg/models/v1/customers/promotional_revoke_params.rbs +0 -27
  121. data/sig/stigg/models/v1/customers/promotional_revoke_response.rbs +0 -209
  122. data/sig/stigg/models/v1/customers/usage_retrieve_params.rbs +0 -54
  123. data/sig/stigg/models/v1/customers/usage_retrieve_response.rbs +0 -134
  124. data/sig/stigg/resources/v1/customers/promotional.rbs +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dad9def9c2060ac8c54995c4f63a0497d1c14a2022d7b6569925aca298bbcdaa
4
- data.tar.gz: f50551f0e1863014f5b3dfaa2dde3e789c035bdef3898626ff21b51ef32d6535
3
+ metadata.gz: '09fe96600df45ed243157d6113eba1fc3d9f67bd83ef3f1dcb14c26aa300c416'
4
+ data.tar.gz: 930196b64fdd388d266e858a894c274118514670520f6a384a898d2c1ebf9e13
5
5
  SHA512:
6
- metadata.gz: 751c86239a5713845dd854d30c4ac147750aa4aefe5403be71dc123813a108234d941a4c2c637fb4e5e78f8e22f0cef9a29acf8f89b8e5b6c43466931738ddc7
7
- data.tar.gz: 440230700abfdf4768089e975647a0425284bab3407e39b1aa749a98fa9c30a86f1c9c621dd85f49e2d64c51b89801ebb602f1474b03f522f32c815b1b0ad9eb
6
+ metadata.gz: 70a186ffd28a9dc88c13394fc9436c1b4b2e72b6679255467c40251cccfc36a4cea98ee2a903bf4444070085fc637c07f8e66cc98f49881f9f6be08911d725bd
7
+ data.tar.gz: 712f901dbcfc87504a817aa47ec18f51ff62693e25031bfd0ba3509b90b2c19747783da7b15307a0f62d58093a9f90451abeb102b15f0aa55635f6ef4f2d5301
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.2 (2026-01-28)
4
+
5
+ Full Changelog: [v0.1.0-alpha.1...v0.1.0-alpha.2](https://github.com/stiggio/stigg-ruby/compare/v0.1.0-alpha.1...v0.1.0-alpha.2)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([5401740](https://github.com/stiggio/stigg-ruby/commit/5401740b164e4f2e4dfec6b1551d4c6bba400eda))
10
+ * **api:** api update ([af0dbbf](https://github.com/stiggio/stigg-ruby/commit/af0dbbfbe7cabffe473c52077d91594b7c4ec181))
11
+ * **api:** api update ([985e956](https://github.com/stiggio/stigg-ruby/commit/985e9563afe956a76da955a97571a93ba293b097))
12
+ * **api:** api update ([fa4a31b](https://github.com/stiggio/stigg-ruby/commit/fa4a31b7afa59ab427d38557fab38d93ad72ca28))
13
+ * **api:** api update ([59c9248](https://github.com/stiggio/stigg-ruby/commit/59c92487bd880f091b5c4411c2c8c15491bc7ec2))
14
+ * **api:** comment out promotional endpoints ([3c40e53](https://github.com/stiggio/stigg-ruby/commit/3c40e538184cca72a2048129672b65eb787f466c))
15
+ * **api:** improved cursor pagination ([b5650f4](https://github.com/stiggio/stigg-ruby/commit/b5650f4dcd6d97b8539ea76426aece84f8741496))
16
+
3
17
  ## 0.1.0-alpha.1 (2026-01-26)
4
18
 
5
19
  Full Changelog: [v0.0.1-alpha.0...v0.1.0-alpha.1](https://github.com/stiggio/stigg-ruby/compare/v0.0.1-alpha.0...v0.1.0-alpha.1)
data/README.md CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "stigg", "~> 0.1.0.pre.alpha.1"
18
+ gem "stigg", "~> 0.1.0.pre.alpha.2"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -35,6 +35,34 @@ customer_response = stigg.v1.customers.retrieve("REPLACE_ME")
35
35
  puts(customer_response.data)
36
36
  ```
37
37
 
38
+ ### Pagination
39
+
40
+ List methods in the Stigg API are paginated.
41
+
42
+ This library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:
43
+
44
+ ```ruby
45
+ page = stigg.v1.customers.list(limit: 30)
46
+
47
+ # Fetch single item from page.
48
+ customer = page.data[0]
49
+ puts(customer.id)
50
+
51
+ # Automatically fetches more pages as needed.
52
+ page.auto_paging_each do |customer|
53
+ puts(customer.id)
54
+ end
55
+ ```
56
+
57
+ Alternatively, you can use the `#next_page?` and `#next_page` methods for more granular control working with pages.
58
+
59
+ ```ruby
60
+ if page.next_page?
61
+ new_page = page.next_page
62
+ puts(new_page.data[0].id)
63
+ end
64
+ ```
65
+
38
66
  ### Handling errors
39
67
 
40
68
  When the library is unable to connect to the API, or if the API returns a non-success status code (i.e., 4xx or 5xx response), a subclass of `Stigg::Errors::APIError` will be thrown:
@@ -10,8 +10,8 @@ module Stigg
10
10
  # end
11
11
  #
12
12
  # @example
13
- # my_cursor_id_page.auto_paging_each do |item|
14
- # puts(item)
13
+ # my_cursor_id_page.auto_paging_each do |customer|
14
+ # puts(customer)
15
15
  # end
16
16
  class MyCursorIDPage
17
17
  include Stigg::Internal::Type::BasePage
@@ -19,9 +19,12 @@ module Stigg
19
19
  # @return [Array<generic<Elem>>, nil]
20
20
  attr_accessor :data
21
21
 
22
+ # @return [Pagination]
23
+ attr_accessor :pagination
24
+
22
25
  # @return [Boolean]
23
26
  def next_page?
24
- !data.to_a.empty?
27
+ !data.to_a.empty? && (!pagination&.prev.to_s.empty? || !pagination&.next_.to_s.empty?)
25
28
  end
26
29
 
27
30
  # @raise [Stigg::HTTP::Error]
@@ -32,7 +35,10 @@ module Stigg
32
35
  raise RuntimeError.new(message)
33
36
  end
34
37
 
35
- req = Stigg::Internal::Util.deep_merge(@req, {query: {starting_after: data&.last&.cursor_id}})
38
+ req = Stigg::Internal::Util.deep_merge(
39
+ @req,
40
+ {query: pagination&.prev.nil? ? {after: pagination&.next_} : {before: pagination&.prev}}
41
+ )
36
42
  @client.request(req)
37
43
  end
38
44
 
@@ -67,6 +73,12 @@ module Stigg
67
73
  @data = data.map { Stigg::Internal::Type::Converter.coerce(@model, _1) }
68
74
  else
69
75
  end
76
+ case page_data
77
+ in {pagination: Hash | nil => pagination}
78
+ @pagination =
79
+ Stigg::Internal::Type::Converter.coerce(Stigg::Internal::MyCursorIDPage::Pagination, pagination)
80
+ else
81
+ end
70
82
  end
71
83
 
72
84
  # @api private
@@ -77,6 +89,22 @@ module Stigg
77
89
 
78
90
  "#<#{self.class}[#{model}]:0x#{object_id.to_s(16)}>"
79
91
  end
92
+
93
+ class Pagination < Stigg::Internal::Type::BaseModel
94
+ # @!attribute next_
95
+ #
96
+ # @return [String, nil]
97
+ optional :next_, String, api_name: :next
98
+
99
+ # @!attribute prev
100
+ #
101
+ # @return [String, nil]
102
+ optional :prev, String
103
+
104
+ # @!method initialize(next_: nil, prev: nil)
105
+ # @param next_ [String]
106
+ # @param prev [String]
107
+ end
80
108
  end
81
109
  end
82
110
  end
@@ -84,6 +84,8 @@ module Stigg
84
84
  required :currency, enum: -> { Stigg::V1::CouponCreateParams::AmountsOff::Currency }
85
85
 
86
86
  # @!method initialize(amount:, currency:)
87
+ # Monetary amount with currency
88
+ #
87
89
  # @param amount [Float] The price amount
88
90
  #
89
91
  # @param currency [Symbol, Stigg::Models::V1::CouponCreateParams::AmountsOff::Currency] The price currency
@@ -6,12 +6,15 @@ module Stigg
6
6
  # @see Stigg::Resources::V1::Coupons#create
7
7
  class CouponCreateResponse < Stigg::Internal::Type::BaseModel
8
8
  # @!attribute data
9
+ # Discount instrument with percentage or fixed amount
9
10
  #
10
11
  # @return [Stigg::Models::V1::CouponCreateResponse::Data]
11
12
  required :data, -> { Stigg::Models::V1::CouponCreateResponse::Data }
12
13
 
13
14
  # @!method initialize(data:)
14
- # @param data [Stigg::Models::V1::CouponCreateResponse::Data]
15
+ # Response object
16
+ #
17
+ # @param data [Stigg::Models::V1::CouponCreateResponse::Data] Discount instrument with percentage or fixed amount
15
18
 
16
19
  # @see Stigg::Models::V1::CouponCreateResponse#data
17
20
  class Data < Stigg::Internal::Type::BaseModel
@@ -97,6 +100,8 @@ module Stigg
97
100
  required :updated_at, Time, api_name: :updatedAt
98
101
 
99
102
  # @!method initialize(id:, amounts_off:, billing_id:, billing_link_url:, created_at:, description:, duration_in_months:, name:, percent_off:, source:, status:, type:, updated_at:)
103
+ # Discount instrument with percentage or fixed amount
104
+ #
100
105
  # @param id [String] The unique identifier for the entity
101
106
  #
102
107
  # @param amounts_off [Array<Stigg::Models::V1::CouponCreateResponse::Data::AmountsOff>, nil] Fixed amount discounts in different currencies
@@ -133,15 +138,15 @@ module Stigg
133
138
  # @!attribute currency
134
139
  # The price currency
135
140
  #
136
- # @return [Symbol, Stigg::Models::V1::CouponCreateResponse::Data::AmountsOff::Currency, nil]
137
- required :currency,
138
- enum: -> { Stigg::Models::V1::CouponCreateResponse::Data::AmountsOff::Currency },
139
- nil?: true
141
+ # @return [Symbol, Stigg::Models::V1::CouponCreateResponse::Data::AmountsOff::Currency]
142
+ required :currency, enum: -> { Stigg::Models::V1::CouponCreateResponse::Data::AmountsOff::Currency }
140
143
 
141
144
  # @!method initialize(amount:, currency:)
145
+ # Monetary amount with currency
146
+ #
142
147
  # @param amount [Float] The price amount
143
148
  #
144
- # @param currency [Symbol, Stigg::Models::V1::CouponCreateResponse::Data::AmountsOff::Currency, nil] The price currency
149
+ # @param currency [Symbol, Stigg::Models::V1::CouponCreateResponse::Data::AmountsOff::Currency] The price currency
145
150
 
146
151
  # The price currency
147
152
  #
@@ -8,30 +8,30 @@ module Stigg
8
8
  extend Stigg::Internal::Type::RequestParameters::Converter
9
9
  include Stigg::Internal::Type::RequestParameters
10
10
 
11
- # @!attribute ending_before
12
- # Ending before this UUID for pagination
11
+ # @!attribute after
12
+ # Return items that come after this cursor
13
13
  #
14
14
  # @return [String, nil]
15
- optional :ending_before, String
15
+ optional :after, String
16
+
17
+ # @!attribute before
18
+ # Return items that come before this cursor
19
+ #
20
+ # @return [String, nil]
21
+ optional :before, String
16
22
 
17
23
  # @!attribute limit
18
- # Items per page
24
+ # Maximum number of items to return
19
25
  #
20
26
  # @return [Integer, nil]
21
27
  optional :limit, Integer
22
28
 
23
- # @!attribute starting_after
24
- # Starting after this UUID for pagination
25
- #
26
- # @return [String, nil]
27
- optional :starting_after, String
28
-
29
- # @!method initialize(ending_before: nil, limit: nil, starting_after: nil, request_options: {})
30
- # @param ending_before [String] Ending before this UUID for pagination
29
+ # @!method initialize(after: nil, before: nil, limit: nil, request_options: {})
30
+ # @param after [String] Return items that come after this cursor
31
31
  #
32
- # @param limit [Integer] Items per page
32
+ # @param before [String] Return items that come before this cursor
33
33
  #
34
- # @param starting_after [String] Starting after this UUID for pagination
34
+ # @param limit [Integer] Maximum number of items to return
35
35
  #
36
36
  # @param request_options [Stigg::RequestOptions, Hash{Symbol=>Object}]
37
37
  end