Class: Dodopayments::Resources::Discounts
- Inherits:
-
Object
- Object
- Dodopayments::Resources::Discounts
- Defined in:
- lib/dodopayments/resources/discounts.rb
Instance Method Summary collapse
-
#create(amount:, type:, code: nil, expires_at: nil, metadata: nil, name: nil, preserve_on_plan_change: nil, restricted_to: nil, subscription_cycles: nil, usage_limit: nil, request_options: {}) ⇒ Dodopayments::Models::Discount
Some parameter documentations has been truncated, see Models::DiscountCreateParams for more details.
-
#delete(discount_id, request_options: {}) ⇒ nil
DELETE /discounts/discount_id.
-
#initialize(client:) ⇒ Discounts
constructor
private
A new instance of Discounts.
-
#list(active: nil, code: nil, discount_type: nil, page_number: nil, page_size: nil, product_id: nil, request_options: {}) ⇒ Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::Discount>
GET /discounts.
-
#retrieve(discount_id, request_options: {}) ⇒ Dodopayments::Models::Discount
GET /discounts/discount_id.
-
#retrieve_by_code(code, request_options: {}) ⇒ Dodopayments::Models::Discount
Validate and fetch a discount by its code name (e.g., “SAVE20”).
-
#update(discount_id, amount: nil, code: nil, expires_at: nil, metadata: nil, name: nil, preserve_on_plan_change: nil, restricted_to: nil, subscription_cycles: nil, type: nil, usage_limit: nil, request_options: {}) ⇒ Dodopayments::Models::Discount
Some parameter documentations has been truncated, see Models::DiscountUpdateParams for more details.
Constructor Details
#initialize(client:) ⇒ Discounts
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Discounts.
194 195 196 |
# File 'lib/dodopayments/resources/discounts.rb', line 194 def initialize(client:) @client = client end |
Instance Method Details
#create(amount:, type:, code: nil, expires_at: nil, metadata: nil, name: nil, preserve_on_plan_change: nil, restricted_to: nil, subscription_cycles: nil, usage_limit: nil, request_options: {}) ⇒ Dodopayments::Models::Discount
Some parameter documentations has been truncated, see Models::DiscountCreateParams for more details.
POST /discounts If ‘code` is omitted or empty, a random 16-char uppercase code is generated.
39 40 41 42 43 44 45 46 47 48 |
# File 'lib/dodopayments/resources/discounts.rb', line 39 def create(params) parsed, = Dodopayments::DiscountCreateParams.dump_request(params) @client.request( method: :post, path: "discounts", body: parsed, model: Dodopayments::Discount, options: ) end |
#delete(discount_id, request_options: {}) ⇒ nil
DELETE /discounts/discount_id
160 161 162 163 164 165 166 167 |
# File 'lib/dodopayments/resources/discounts.rb', line 160 def delete(discount_id, params = {}) @client.request( method: :delete, path: ["discounts/%1$s", discount_id], model: NilClass, options: params[:request_options] ) end |
#list(active: nil, code: nil, discount_type: nil, page_number: nil, page_size: nil, product_id: nil, request_options: {}) ⇒ Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::Discount>
GET /discounts
136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/dodopayments/resources/discounts.rb', line 136 def list(params = {}) parsed, = Dodopayments::DiscountListParams.dump_request(params) query = Dodopayments::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "discounts", query: query, page: Dodopayments::Internal::DefaultPageNumberPagination, model: Dodopayments::Discount, options: ) end |
#retrieve(discount_id, request_options: {}) ⇒ Dodopayments::Models::Discount
GET /discounts/discount_id
61 62 63 64 65 66 67 68 |
# File 'lib/dodopayments/resources/discounts.rb', line 61 def retrieve(discount_id, params = {}) @client.request( method: :get, path: ["discounts/%1$s", discount_id], model: Dodopayments::Discount, options: params[:request_options] ) end |
#retrieve_by_code(code, request_options: {}) ⇒ Dodopayments::Models::Discount
Validate and fetch a discount by its code name (e.g., “SAVE20”). This allows real-time validation directly against the API using the human-readable discount code instead of requiring the internal discount_id.
182 183 184 185 186 187 188 189 |
# File 'lib/dodopayments/resources/discounts.rb', line 182 def retrieve_by_code(code, params = {}) @client.request( method: :get, path: ["discounts/code/%1$s", code], model: Dodopayments::Discount, options: params[:request_options] ) end |
#update(discount_id, amount: nil, code: nil, expires_at: nil, metadata: nil, name: nil, preserve_on_plan_change: nil, restricted_to: nil, subscription_cycles: nil, type: nil, usage_limit: nil, request_options: {}) ⇒ Dodopayments::Models::Discount
Some parameter documentations has been truncated, see Models::DiscountUpdateParams for more details.
PATCH /discounts/discount_id
104 105 106 107 108 109 110 111 112 113 |
# File 'lib/dodopayments/resources/discounts.rb', line 104 def update(discount_id, params = {}) parsed, = Dodopayments::DiscountUpdateParams.dump_request(params) @client.request( method: :patch, path: ["discounts/%1$s", discount_id], body: parsed, model: Dodopayments::Discount, options: ) end |