lemonsqueezy 0.2.2 → 1.0.1

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/.env.example +2 -1
  3. data/Gemfile +2 -1
  4. data/Gemfile.lock +13 -9
  5. data/README.md +194 -68
  6. data/bin/console +3 -1
  7. data/lib/lemon_squeezy/client.rb +57 -63
  8. data/lib/lemon_squeezy/configuration.rb +12 -0
  9. data/lib/lemon_squeezy/models/checkout.rb +46 -0
  10. data/lib/lemon_squeezy/models/customer.rb +52 -0
  11. data/lib/lemon_squeezy/models/discount.rb +47 -0
  12. data/lib/lemon_squeezy/models/discount_redemption.rb +19 -0
  13. data/lib/lemon_squeezy/models/file.rb +19 -0
  14. data/lib/lemon_squeezy/models/license.rb +24 -0
  15. data/lib/lemon_squeezy/models/license_key.rb +32 -0
  16. data/lib/lemon_squeezy/models/license_key_instance.rb +19 -0
  17. data/lib/lemon_squeezy/models/order.rb +24 -0
  18. data/lib/lemon_squeezy/models/price.rb +19 -0
  19. data/lib/lemon_squeezy/models/product.rb +19 -0
  20. data/lib/lemon_squeezy/models/store.rb +19 -0
  21. data/lib/lemon_squeezy/models/subscription.rb +101 -0
  22. data/lib/lemon_squeezy/models/subscription_invoice.rb +19 -0
  23. data/lib/lemon_squeezy/models/subscription_item.rb +38 -0
  24. data/lib/lemon_squeezy/models/subscription_usage.rb +4 -0
  25. data/lib/lemon_squeezy/models/user.rb +14 -0
  26. data/lib/lemon_squeezy/models/variant.rb +19 -0
  27. data/lib/lemon_squeezy/models/webhook.rb +58 -0
  28. data/lib/lemon_squeezy/object.rb +15 -1
  29. data/lib/lemon_squeezy/version.rb +1 -1
  30. data/lib/lemon_squeezy.rb +34 -29
  31. metadata +23 -29
  32. data/lib/lemon_squeezy/objects/checkout.rb +0 -12
  33. data/lib/lemon_squeezy/objects/customer.rb +0 -12
  34. data/lib/lemon_squeezy/objects/discount.rb +0 -12
  35. data/lib/lemon_squeezy/objects/file.rb +0 -12
  36. data/lib/lemon_squeezy/objects/license_key.rb +0 -12
  37. data/lib/lemon_squeezy/objects/license_key_instance.rb +0 -12
  38. data/lib/lemon_squeezy/objects/order.rb +0 -12
  39. data/lib/lemon_squeezy/objects/order_item.rb +0 -12
  40. data/lib/lemon_squeezy/objects/product.rb +0 -12
  41. data/lib/lemon_squeezy/objects/store.rb +0 -12
  42. data/lib/lemon_squeezy/objects/subscription.rb +0 -12
  43. data/lib/lemon_squeezy/objects/subscription_invoice.rb +0 -12
  44. data/lib/lemon_squeezy/objects/variant.rb +0 -12
  45. data/lib/lemon_squeezy/resource.rb +0 -60
  46. data/lib/lemon_squeezy/resources/checkouts.rb +0 -42
  47. data/lib/lemon_squeezy/resources/customers.rb +0 -15
  48. data/lib/lemon_squeezy/resources/discounts.rb +0 -15
  49. data/lib/lemon_squeezy/resources/files.rb +0 -15
  50. data/lib/lemon_squeezy/resources/license_key_instances.rb +0 -15
  51. data/lib/lemon_squeezy/resources/license_keys.rb +0 -15
  52. data/lib/lemon_squeezy/resources/orders.rb +0 -20
  53. data/lib/lemon_squeezy/resources/products.rb +0 -15
  54. data/lib/lemon_squeezy/resources/stores.rb +0 -15
  55. data/lib/lemon_squeezy/resources/subscription_invoices.rb +0 -15
  56. data/lib/lemon_squeezy/resources/subscriptions.rb +0 -92
  57. data/lib/lemon_squeezy/resources/variants.rb +0 -15
@@ -1,92 +0,0 @@
1
- module LemonSqueezy
2
- class SubscriptionsResource < Resource
3
-
4
- def list(**params)
5
- response = get_request("subscriptions", params: params)
6
- Collection.from_response(response, type: Subscription)
7
- end
8
-
9
- def get(id:)
10
- response = get_request("subscriptions/#{id}")
11
- Subscription.new(response.body["data"]) if response.success?
12
- end
13
-
14
- # Kind: void or free
15
- def pause(id:, kind:, resumes_at: nil)
16
- body = {
17
- data: {
18
- type: "subscriptions",
19
- id: id.to_s,
20
- attributes: {
21
- pause: {mode: kind, resumes_at: resumes_at}
22
- }
23
- }
24
- }
25
-
26
- response = patch_request("subscriptions/#{id}", body: body.to_json)
27
- Subscription.new(response.body["data"]) if response.success?
28
- end
29
-
30
- def unpause(id:)
31
- body = {
32
- data: {
33
- type: "subscriptions",
34
- id: id.to_s,
35
- attributes: {
36
- pause: nil
37
- }
38
- }
39
- }
40
-
41
- response = patch_request("subscriptions/#{id}", body: body.to_json)
42
- Subscription.new(response.body["data"]) if response.success?
43
- end
44
-
45
- def cancel(id:)
46
- body = {
47
- data: {
48
- type: "subscriptions",
49
- id: id.to_s,
50
- attributes: {
51
- cancelled: true
52
- }
53
- }
54
- }
55
-
56
- response = patch_request("subscriptions/#{id}", body: body.to_json)
57
- Subscription.new(response.body["data"]) if response.success?
58
- end
59
-
60
- def uncancel(id:)
61
- body = {
62
- data: {
63
- type: "subscriptions",
64
- id: id.to_s,
65
- attributes: {
66
- cancelled: false
67
- }
68
- }
69
- }
70
-
71
- response = patch_request("subscriptions/#{id}", body: body.to_json)
72
- Subscription.new(response.body["data"]) if response.success?
73
- end
74
-
75
- def change_plan(id:, plan_id:, variant_id:)
76
- body = {
77
- data: {
78
- type: "subscriptions",
79
- id: id.to_s,
80
- attributes: {
81
- product_id: plan_id,
82
- variant_id: variant_id
83
- }
84
- }
85
- }
86
-
87
- response = patch_request("subscriptions/#{id}", body: body.to_json)
88
- Subscription.new(response.body["data"]) if response.success?
89
- end
90
-
91
- end
92
- end
@@ -1,15 +0,0 @@
1
- module LemonSqueezy
2
- class VariantsResource < Resource
3
-
4
- def list(**params)
5
- response = get_request("variants", params: params)
6
- Collection.from_response(response, type: Variant)
7
- end
8
-
9
- def get(id:)
10
- response = get_request("variants/#{id}")
11
- Variant.new(response.body["data"]) if response.success?
12
- end
13
-
14
- end
15
- end