Class: LemonSqueezy::Subscription
- Defined in:
- lib/lemon_squeezy/models/subscription.rb
Class Method Summary collapse
- .cancel(id:) ⇒ Object
- .change_plan(id:, plan_id:, variant_id:, invoice_immediately: false, disable_prorations: false) ⇒ Object
- .list(**params) ⇒ Object
-
.pause(id:, kind:, resumes_at: nil) ⇒ Object
Kind: void or free.
- .retrieve(id:) ⇒ Object
- .uncancel(id:) ⇒ Object
- .unpause(id:) ⇒ Object
- .update(id:, **attributes) ⇒ Object
Methods inherited from Object
Constructor Details
This class inherits a constructor from LemonSqueezy::Object
Class Method Details
.cancel(id:) ⇒ Object
60 61 62 63 |
# File 'lib/lemon_squeezy/models/subscription.rb', line 60 def cancel(id:) response = Client.delete_request("subscriptions/#{id}") Subscription.new(response.body["data"]) if response.success? end |
.change_plan(id:, plan_id:, variant_id:, invoice_immediately: false, disable_prorations: false) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/lemon_squeezy/models/subscription.rb', line 80 def change_plan(id:, plan_id:, variant_id:, invoice_immediately: false, disable_prorations: false) body = { data: { type: "subscriptions", id: id.to_s, attributes: { product_id: plan_id, variant_id: variant_id, invoice_immediately: invoice_immediately, disable_prorations: disable_prorations } } } response = Client.patch_request("subscriptions/#{id}", body: body.to_json) Subscription.new(response.body["data"]) if response.success? end |
.list(**params) ⇒ Object
6 7 8 9 |
# File 'lib/lemon_squeezy/models/subscription.rb', line 6 def list(**params) response = Client.get_request("subscriptions", params: {filter: params}) Collection.from_response(response, type: Subscription) end |
.pause(id:, kind:, resumes_at: nil) ⇒ Object
Kind: void or free
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/lemon_squeezy/models/subscription.rb', line 30 def pause(id:, kind:, resumes_at: nil) body = { data: { type: "subscriptions", id: id.to_s, attributes: { pause: {mode: kind, resumes_at: resumes_at} } } } response = Client.patch_request("subscriptions/#{id}", body: body.to_json) Subscription.new(response.body["data"]) if response.success? end |
.retrieve(id:) ⇒ Object
11 12 13 14 |
# File 'lib/lemon_squeezy/models/subscription.rb', line 11 def retrieve(id:) response = Client.get_request("subscriptions/#{id}") Subscription.new(response.body["data"]) if response.success? end |
.uncancel(id:) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/lemon_squeezy/models/subscription.rb', line 65 def uncancel(id:) body = { data: { type: "subscriptions", id: id.to_s, attributes: { cancelled: false } } } response = Client.patch_request("subscriptions/#{id}", body: body.to_json) Subscription.new(response.body["data"]) if response.success? end |
.unpause(id:) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/lemon_squeezy/models/subscription.rb', line 45 def unpause(id:) body = { data: { type: "subscriptions", id: id.to_s, attributes: { pause: nil } } } response = Client.patch_request("subscriptions/#{id}", body: body.to_json) Subscription.new(response.body["data"]) if response.success? end |
.update(id:, **attributes) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/lemon_squeezy/models/subscription.rb', line 16 def update(id:, **attributes) body = { data: { type: "subscriptions", id: id.to_s, attributes: attributes } } response = Client.patch_request("subscriptions/#{id}", body: body.to_json) Subscription.new(response.body["data"]) if response.success? end |