Class: Dodopayments::Resources::Discounts
- Inherits:
-
Object
- Object
- Dodopayments::Resources::Discounts
- Defined in:
- lib/dodopayments/resources/discounts.rb,
sig/dodopayments/resources/discounts.rbs
Instance Method Summary collapse
-
#create(amount:, type:, code: nil, currency_options: nil, customer_eligibility: nil, expires_at: nil, metadata: nil, name: nil, per_customer_usage_limit: nil, preserve_on_plan_change: nil, restricted_to: nil, starts_at: 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>
Some parameter documentations has been truncated, see Models::DiscountListParams for more details.
-
#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, currency_options: nil, customer_eligibility: nil, expires_at: nil, metadata: nil, name: nil, per_customer_usage_limit: nil, preserve_on_plan_change: nil, restricted_to: nil, starts_at: 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.
213 214 215 |
# File 'lib/dodopayments/resources/discounts.rb', line 213 def initialize(client:) @client = client end |
Instance Method Details
#create(amount:, type:, code: nil, currency_options: nil, customer_eligibility: nil, expires_at: nil, metadata: nil, name: nil, per_customer_usage_limit: nil, preserve_on_plan_change: nil, restricted_to: nil, starts_at: 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.
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/dodopayments/resources/discounts.rb', line 47 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
179 180 181 182 183 184 185 186 |
# File 'lib/dodopayments/resources/discounts.rb', line 179 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>
Some parameter documentations has been truncated, see Models::DiscountListParams for more details.
GET /discounts
155 156 157 158 159 160 161 162 163 164 165 166 |
# File 'lib/dodopayments/resources/discounts.rb', line 155 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
69 70 71 72 73 74 75 76 |
# File 'lib/dodopayments/resources/discounts.rb', line 69 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.
201 202 203 204 205 206 207 208 |
# File 'lib/dodopayments/resources/discounts.rb', line 201 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, currency_options: nil, customer_eligibility: nil, expires_at: nil, metadata: nil, name: nil, per_customer_usage_limit: nil, preserve_on_plan_change: nil, restricted_to: nil, starts_at: 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
120 121 122 123 124 125 126 127 128 129 |
# File 'lib/dodopayments/resources/discounts.rb', line 120 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 |