pay 2.7.2 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pay might be problematic. Click here for more details.

Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -731
  3. data/app/controllers/pay/webhooks/braintree_controller.rb +10 -3
  4. data/app/controllers/pay/webhooks/paddle_controller.rb +7 -8
  5. data/app/controllers/pay/webhooks/stripe_controller.rb +6 -3
  6. data/app/jobs/pay/{email_sync_job.rb → customer_sync_job.rb} +3 -4
  7. data/app/models/pay/application_record.rb +0 -5
  8. data/app/models/pay/charge.rb +31 -18
  9. data/app/models/pay/customer.rb +87 -0
  10. data/app/models/pay/merchant.rb +19 -0
  11. data/app/models/pay/payment_method.rb +41 -0
  12. data/app/models/pay/subscription.rb +32 -30
  13. data/app/models/pay/webhook.rb +36 -0
  14. data/app/views/layouts/pay/application.html.erb +2 -3
  15. data/app/views/pay/payments/show.html.erb +109 -81
  16. data/app/views/pay/user_mailer/receipt.html.erb +2 -2
  17. data/app/views/pay/user_mailer/refund.html.erb +2 -2
  18. data/config/locales/en.yml +1 -1
  19. data/db/migrate/1_create_pay_tables.rb +72 -0
  20. data/lib/pay/attributes.rb +74 -0
  21. data/lib/pay/billable/sync_customer.rb +30 -0
  22. data/lib/pay/braintree/billable.rb +126 -108
  23. data/lib/pay/braintree/payment_method.rb +33 -0
  24. data/lib/pay/braintree/subscription.rb +7 -12
  25. data/lib/pay/braintree/webhooks/subscription_canceled.rb +1 -1
  26. data/lib/pay/braintree/webhooks/subscription_charged_successfully.rb +4 -4
  27. data/lib/pay/braintree/webhooks/subscription_charged_unsuccessfully.rb +1 -1
  28. data/lib/pay/braintree/webhooks/subscription_expired.rb +1 -1
  29. data/lib/pay/braintree/webhooks/subscription_trial_ended.rb +2 -2
  30. data/lib/pay/braintree/webhooks/subscription_went_active.rb +1 -1
  31. data/lib/pay/braintree/webhooks/subscription_went_past_due.rb +1 -1
  32. data/lib/pay/braintree.rb +3 -2
  33. data/lib/pay/engine.rb +6 -1
  34. data/lib/pay/fake_processor/billable.rb +45 -21
  35. data/lib/pay/fake_processor/payment_method.rb +21 -0
  36. data/lib/pay/fake_processor/subscription.rb +11 -10
  37. data/lib/pay/fake_processor.rb +2 -1
  38. data/lib/pay/nano_id.rb +13 -0
  39. data/lib/pay/paddle/billable.rb +18 -48
  40. data/lib/pay/paddle/charge.rb +5 -5
  41. data/lib/pay/paddle/payment_method.rb +58 -0
  42. data/lib/pay/paddle/response.rb +0 -0
  43. data/lib/pay/paddle/subscription.rb +47 -8
  44. data/lib/pay/paddle/webhooks/subscription_cancelled.rb +6 -3
  45. data/lib/pay/paddle/webhooks/subscription_created.rb +1 -40
  46. data/lib/pay/paddle/webhooks/subscription_payment_refunded.rb +3 -3
  47. data/lib/pay/paddle/webhooks/subscription_payment_succeeded.rb +26 -28
  48. data/lib/pay/paddle/webhooks/subscription_updated.rb +2 -2
  49. data/lib/pay/paddle.rb +7 -3
  50. data/lib/pay/payment.rb +1 -1
  51. data/lib/pay/receipts.rb +35 -7
  52. data/lib/pay/stripe/billable.rb +50 -64
  53. data/lib/pay/stripe/charge.rb +18 -15
  54. data/lib/pay/stripe/merchant.rb +10 -10
  55. data/lib/pay/stripe/payment_method.rb +61 -0
  56. data/lib/pay/stripe/subscription.rb +22 -17
  57. data/lib/pay/stripe/webhooks/account_updated.rb +2 -3
  58. data/lib/pay/stripe/webhooks/charge_refunded.rb +1 -1
  59. data/lib/pay/stripe/webhooks/charge_succeeded.rb +2 -2
  60. data/lib/pay/stripe/webhooks/checkout_session_async_payment_succeeded.rb +3 -1
  61. data/lib/pay/stripe/webhooks/checkout_session_completed.rb +3 -1
  62. data/lib/pay/stripe/webhooks/customer_deleted.rb +7 -15
  63. data/lib/pay/stripe/webhooks/customer_updated.rb +10 -3
  64. data/lib/pay/stripe/webhooks/payment_action_required.rb +2 -2
  65. data/lib/pay/stripe/webhooks/payment_intent_succeeded.rb +6 -8
  66. data/lib/pay/stripe/webhooks/payment_method_attached.rb +2 -4
  67. data/lib/pay/stripe/webhooks/payment_method_detached.rb +1 -6
  68. data/lib/pay/stripe/webhooks/payment_method_updated.rb +10 -4
  69. data/lib/pay/stripe/webhooks/subscription_created.rb +1 -1
  70. data/lib/pay/stripe/webhooks/subscription_deleted.rb +2 -1
  71. data/lib/pay/stripe/webhooks/subscription_renewing.rb +12 -2
  72. data/lib/pay/stripe.rb +6 -3
  73. data/lib/pay/version.rb +1 -1
  74. data/lib/pay/webhooks/delegator.rb +4 -0
  75. data/lib/pay/webhooks/process_job.rb +9 -0
  76. data/lib/pay/webhooks.rb +1 -0
  77. data/lib/pay.rb +7 -78
  78. metadata +20 -37
  79. data/db/migrate/20170205020145_create_pay_subscriptions.rb +0 -17
  80. data/db/migrate/20170727235816_create_pay_charges.rb +0 -18
  81. data/db/migrate/20190816015720_add_status_to_pay_subscriptions.rb +0 -14
  82. data/db/migrate/20200603134434_add_data_to_pay_models.rb +0 -6
  83. data/db/migrate/20210309004259_add_data_to_pay_billable.rb +0 -10
  84. data/db/migrate/20210406215234_add_currency_to_pay_charges.rb +0 -5
  85. data/db/migrate/20210406215506_add_application_fee_to_pay_models.rb +0 -7
  86. data/db/migrate/20210714175351_add_uniqueness_to_pay_models.rb +0 -6
  87. data/lib/pay/billable/sync_email.rb +0 -40
  88. data/lib/pay/billable.rb +0 -172
  89. data/lib/pay/stripe/webhooks/payment_method_automatically_updated.rb +0 -17
@@ -4,12 +4,18 @@ module Pay
4
4
  class PaymentMethodUpdated
5
5
  def call(event)
6
6
  object = event.data.object
7
- billable = Pay.find_billable(processor: :stripe, processor_id: object.customer)
8
7
 
9
- # Couldn't find user, we can skip
10
- return unless billable.present?
8
+ if object.customer
9
+ pay_customer = Pay::Customer.find_by(processor: :stripe, processor_id: object.customer)
11
10
 
12
- Pay::Stripe::Billable.new(billable).sync_card_from_stripe
11
+ # Couldn't find user, we can skip
12
+ return unless pay_customer.present?
13
+
14
+ Pay::Stripe::PaymentMethod.sync(object.id, stripe_account: event.try(:account))
15
+ else
16
+ # If customer was removed, we should delete the payment method if it exists
17
+ Pay::PaymentMethod.find_by_processor_and_id(:stripe, object.id)&.destroy
18
+ end
13
19
  end
14
20
  end
15
21
  end
@@ -3,7 +3,7 @@ module Pay
3
3
  module Webhooks
4
4
  class SubscriptionCreated
5
5
  def call(event)
6
- Pay::Stripe::Subscription.sync(event.data.object.id)
6
+ Pay::Stripe::Subscription.sync(event.data.object.id, stripe_account: event.try(:account))
7
7
  end
8
8
  end
9
9
  end
@@ -3,7 +3,8 @@ module Pay
3
3
  module Webhooks
4
4
  class SubscriptionDeleted
5
5
  def call(event)
6
- Pay::Stripe::Subscription.sync(event.data.object.id)
6
+ # Canceled subscriptions are still accessible via the API, so we can sync their details
7
+ Pay::Stripe::Subscription.sync(event.data.object.id, stripe_account: event.try(:account))
7
8
  end
8
9
  end
9
10
  end
@@ -2,13 +2,23 @@ module Pay
2
2
  module Stripe
3
3
  module Webhooks
4
4
  class SubscriptionRenewing
5
+ # Handles `invoice.upcoming` webhook from Stripe
6
+ # Occurs X number of days before a subscription is scheduled to create an invoice that is automatically charged—where X is determined by your subscriptions settings. Note: The received Invoice object will not have an invoice ID.
7
+
5
8
  def call(event)
6
9
  # Event is of type "invoice" see:
7
10
  # https://stripe.com/docs/api/invoices/object
8
- subscription = Pay.subscription_model.find_by(processor: :stripe, processor_id: event.data.object.subscription)
11
+ subscription = Pay::Subscription.find_by_processor_and_id(:stripe, event.data.object.subscription)
9
12
  return unless subscription
10
13
 
11
- notify_user(subscription.owner, subscription, Time.zone.at(event.data.object.next_payment_attempt))
14
+ # Stripe subscription items all have the same interval
15
+ price = event.data.object.lines.data.first.price
16
+ return unless price.type == "recurring"
17
+
18
+ interval = price.recurring.interval
19
+ return unless interval == "year"
20
+
21
+ notify_user(subscription.customer.owner, subscription, Time.zone.at(event.data.object.next_payment_attempt))
12
22
  end
13
23
 
14
24
  def notify_user(billable, subscription, date)
data/lib/pay/stripe.rb CHANGED
@@ -2,9 +2,10 @@ module Pay
2
2
  module Stripe
3
3
  autoload :Billable, "pay/stripe/billable"
4
4
  autoload :Charge, "pay/stripe/charge"
5
- autoload :Subscription, "pay/stripe/subscription"
6
5
  autoload :Error, "pay/stripe/error"
7
6
  autoload :Merchant, "pay/stripe/merchant"
7
+ autoload :PaymentMethod, "pay/stripe/payment_method"
8
+ autoload :Subscription, "pay/stripe/subscription"
8
9
 
9
10
  module Webhooks
10
11
  autoload :AccountUpdated, "pay/stripe/webhooks/account_updated"
@@ -16,6 +17,8 @@ module Pay
16
17
  autoload :CustomerUpdated, "pay/stripe/webhooks/customer_updated"
17
18
  autoload :PaymentActionRequired, "pay/stripe/webhooks/payment_action_required"
18
19
  autoload :PaymentIntentSucceeded, "pay/stripe/webhooks/payment_intent_succeeded"
20
+ autoload :PaymentMethodAttached, "pay/stripe/webhooks/payment_method_attached"
21
+ autoload :PaymentMethodDetached, "pay/stripe/webhooks/payment_method_detached"
19
22
  autoload :PaymentMethodUpdated, "pay/stripe/webhooks/payment_method_updated"
20
23
  autoload :SubscriptionCreated, "pay/stripe/webhooks/subscription_created"
21
24
  autoload :SubscriptionDeleted, "pay/stripe/webhooks/subscription_deleted"
@@ -81,10 +84,10 @@ module Pay
81
84
  events.subscribe "stripe.customer.deleted", Pay::Stripe::Webhooks::CustomerDeleted.new
82
85
 
83
86
  # If a customer's payment source was deleted in Stripe, we should update as well
84
- events.subscribe "stripe.payment_method.attached", Pay::Stripe::Webhooks::PaymentMethodUpdated.new
87
+ events.subscribe "stripe.payment_method.attached", Pay::Stripe::Webhooks::PaymentMethodAttached.new
85
88
  events.subscribe "stripe.payment_method.updated", Pay::Stripe::Webhooks::PaymentMethodUpdated.new
86
89
  events.subscribe "stripe.payment_method.card_automatically_updated", Pay::Stripe::Webhooks::PaymentMethodUpdated.new
87
- events.subscribe "stripe.payment_method.detached", Pay::Stripe::Webhooks::PaymentMethodUpdated.new
90
+ events.subscribe "stripe.payment_method.detached", Pay::Stripe::Webhooks::PaymentMethodDetached.new
88
91
 
89
92
  # If an account is updated in stripe, we should update it as well
90
93
  events.subscribe "stripe.account.updated", Pay::Stripe::Webhooks::AccountUpdated.new
data/lib/pay/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pay
2
- VERSION = "2.7.2"
2
+ VERSION = "3.0.0"
3
3
  end
@@ -35,6 +35,10 @@ module Pay
35
35
  backend.instrument name_with_namespace(type), event
36
36
  end
37
37
 
38
+ def listening?(type)
39
+ backend.notifier.listening? name_with_namespace(type)
40
+ end
41
+
38
42
  # Strips down to event data only
39
43
  class NotificationAdapter
40
44
  def initialize(subscriber)
@@ -0,0 +1,9 @@
1
+ module Pay
2
+ module Webhooks
3
+ class ProcessJob < ApplicationJob
4
+ def perform(pay_webhook)
5
+ pay_webhook.process!
6
+ end
7
+ end
8
+ end
9
+ end
data/lib/pay/webhooks.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  module Pay
2
2
  module Webhooks
3
3
  autoload :Delegator, "pay/webhooks/delegator"
4
+ autoload :ProcessJob, "pay/webhooks/process_job"
4
5
 
5
6
  class << self
6
7
  delegate :configure, :instrument, to: :delegator
data/lib/pay.rb CHANGED
@@ -4,9 +4,9 @@ require "pay/errors"
4
4
  require "pay/adapter"
5
5
 
6
6
  module Pay
7
- autoload :Billable, "pay/billable"
7
+ autoload :Attributes, "pay/attributes"
8
8
  autoload :Env, "pay/env"
9
- autoload :Merchant, "pay/merchant"
9
+ autoload :NanoId, "pay/nano_id"
10
10
  autoload :Payment, "pay/payment"
11
11
  autoload :Receipts, "pay/receipts"
12
12
 
@@ -18,27 +18,15 @@ module Pay
18
18
 
19
19
  autoload :Webhooks, "pay/webhooks"
20
20
 
21
- # Define who owns the subscription
22
- mattr_accessor :billable_class
23
- mattr_accessor :billable_table
24
- mattr_accessor :braintree_gateway
21
+ module Billable
22
+ autoload :SyncCustomer, "pay/billable/sync_customer"
23
+ end
25
24
 
26
- @@billable_class = "User"
27
- @@billable_table = @@billable_class.tableize
25
+ mattr_accessor :braintree_gateway
28
26
 
29
27
  mattr_accessor :model_parent_class
30
28
  @@model_parent_class = "ApplicationRecord"
31
29
 
32
- mattr_accessor :chargeable_class
33
- mattr_accessor :chargeable_table
34
- @@chargeable_class = "Pay::Charge"
35
- @@chargeable_table = "pay_charges"
36
-
37
- mattr_accessor :subscription_class
38
- mattr_accessor :subscription_table
39
- @@subscription_class = "Pay::Subscription"
40
- @@subscription_table = "pay_subscriptions"
41
-
42
30
  # Business details for receipts
43
31
  mattr_accessor :application_name
44
32
  mattr_accessor :business_address
@@ -54,6 +42,7 @@ module Pay
54
42
 
55
43
  mattr_accessor :default_product_name
56
44
  @@default_product_name = "default"
45
+
57
46
  mattr_accessor :default_plan_name
58
47
  @@default_plan_name = "default"
59
48
 
@@ -64,66 +53,6 @@ module Pay
64
53
  yield self
65
54
  end
66
55
 
67
- def self.billable_models
68
- Pay::Billable.includers
69
- end
70
-
71
- def self.merchant_models
72
- Pay::Merchant.includers
73
- end
74
-
75
- def self.find_merchant(account_key, account_value)
76
- merchant_models.each do |model|
77
- case Pay::Adapter.current_adapter
78
- when "postgresql"
79
- return model.find_by("pay_data @> ?", {account_key.to_sym => account_value}.to_json)
80
- when "mysql2"
81
- return model.find_by("JSON_CONTAINS(pay_data, ?)", {account_key.to_sym => account_value}.to_json)
82
- when "sqlite3"
83
- return model.find_by("json_extract(pay_data, ?) =?", "$.#{account_key}", account_value)
84
- else
85
- model.find_by(pay_data: {account_key.to_sym => account_value})
86
- end
87
- end
88
- nil
89
- end
90
-
91
- def self.find_billable(processor:, processor_id:)
92
- billable_models.each do |model|
93
- if (record = model.find_by(processor: processor, processor_id: processor_id))
94
- return record
95
- end
96
- end
97
-
98
- nil
99
- end
100
-
101
- def self.user_model
102
- ActiveSupport::Deprecation.warn("Pay.user_model is deprecated and will be removed in v3. Instead, use `Pay.billable_models` now to support more than one billable model.")
103
-
104
- if Rails.application.config.cache_classes
105
- @@user_model ||= billable_class.constantize
106
- else
107
- billable_class.constantize
108
- end
109
- end
110
-
111
- def self.charge_model
112
- if Rails.application.config.cache_classes
113
- @@charge_model ||= chargeable_class.constantize
114
- else
115
- chargeable_class.constantize
116
- end
117
- end
118
-
119
- def self.subscription_model
120
- if Rails.application.config.cache_classes
121
- @@subscription_model ||= subscription_class.constantize
122
- else
123
- subscription_class.constantize
124
- end
125
- end
126
-
127
56
  def self.receipts_supported?
128
57
  charge_model.respond_to?(:receipt) &&
129
58
  application_name.present? &&
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pay
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.2
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Charnes
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-08-16 00:00:00.000000000 Z
12
+ date: 2021-09-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -17,34 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '4.2'
20
+ version: 6.0.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '4.2'
28
- - !ruby/object:Gem::Dependency
29
- name: minitest-rails
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: '6'
35
- - - "<"
36
- - !ruby/object:Gem::Version
37
- version: '7.0'
38
- type: :development
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- version: '6'
45
- - - "<"
46
- - !ruby/object:Gem::Version
47
- version: '7.0'
27
+ version: 6.0.0
48
28
  - !ruby/object:Gem::Dependency
49
29
  name: mocha
50
30
  requirement: !ruby/object:Gem::Requirement
@@ -122,12 +102,16 @@ files:
122
102
  - app/controllers/pay/webhooks/stripe_controller.rb
123
103
  - app/helpers/pay/application_helper.rb
124
104
  - app/jobs/pay/application_job.rb
125
- - app/jobs/pay/email_sync_job.rb
105
+ - app/jobs/pay/customer_sync_job.rb
126
106
  - app/mailers/pay/application_mailer.rb
127
107
  - app/mailers/pay/user_mailer.rb
128
108
  - app/models/pay/application_record.rb
129
109
  - app/models/pay/charge.rb
110
+ - app/models/pay/customer.rb
111
+ - app/models/pay/merchant.rb
112
+ - app/models/pay/payment_method.rb
130
113
  - app/models/pay/subscription.rb
114
+ - app/models/pay/webhook.rb
131
115
  - app/views/layouts/pay/application.html.erb
132
116
  - app/views/pay/payments/show.html.erb
133
117
  - app/views/pay/stripe/_checkout_button.html.erb
@@ -137,14 +121,7 @@ files:
137
121
  - app/views/pay/user_mailer/subscription_renewing.html.erb
138
122
  - config/locales/en.yml
139
123
  - config/routes.rb
140
- - db/migrate/20170205020145_create_pay_subscriptions.rb
141
- - db/migrate/20170727235816_create_pay_charges.rb
142
- - db/migrate/20190816015720_add_status_to_pay_subscriptions.rb
143
- - db/migrate/20200603134434_add_data_to_pay_models.rb
144
- - db/migrate/20210309004259_add_data_to_pay_billable.rb
145
- - db/migrate/20210406215234_add_currency_to_pay_charges.rb
146
- - db/migrate/20210406215506_add_application_fee_to_pay_models.rb
147
- - db/migrate/20210714175351_add_uniqueness_to_pay_models.rb
124
+ - db/migrate/1_create_pay_tables.rb
148
125
  - lib/generators/active_record/billable_generator.rb
149
126
  - lib/generators/active_record/merchant_generator.rb
150
127
  - lib/generators/active_record/templates/billable_migration.rb
@@ -156,13 +133,14 @@ files:
156
133
  - lib/generators/pay/views_generator.rb
157
134
  - lib/pay.rb
158
135
  - lib/pay/adapter.rb
159
- - lib/pay/billable.rb
160
- - lib/pay/billable/sync_email.rb
136
+ - lib/pay/attributes.rb
137
+ - lib/pay/billable/sync_customer.rb
161
138
  - lib/pay/braintree.rb
162
139
  - lib/pay/braintree/authorization_error.rb
163
140
  - lib/pay/braintree/billable.rb
164
141
  - lib/pay/braintree/charge.rb
165
142
  - lib/pay/braintree/error.rb
143
+ - lib/pay/braintree/payment_method.rb
166
144
  - lib/pay/braintree/subscription.rb
167
145
  - lib/pay/braintree/webhooks/subscription_canceled.rb
168
146
  - lib/pay/braintree/webhooks/subscription_charged_successfully.rb
@@ -178,12 +156,16 @@ files:
178
156
  - lib/pay/fake_processor/billable.rb
179
157
  - lib/pay/fake_processor/charge.rb
180
158
  - lib/pay/fake_processor/error.rb
159
+ - lib/pay/fake_processor/payment_method.rb
181
160
  - lib/pay/fake_processor/subscription.rb
182
161
  - lib/pay/merchant.rb
162
+ - lib/pay/nano_id.rb
183
163
  - lib/pay/paddle.rb
184
164
  - lib/pay/paddle/billable.rb
185
165
  - lib/pay/paddle/charge.rb
186
166
  - lib/pay/paddle/error.rb
167
+ - lib/pay/paddle/payment_method.rb
168
+ - lib/pay/paddle/response.rb
187
169
  - lib/pay/paddle/subscription.rb
188
170
  - lib/pay/paddle/webhooks/signature_verifier.rb
189
171
  - lib/pay/paddle/webhooks/subscription_cancelled.rb
@@ -198,6 +180,7 @@ files:
198
180
  - lib/pay/stripe/charge.rb
199
181
  - lib/pay/stripe/error.rb
200
182
  - lib/pay/stripe/merchant.rb
183
+ - lib/pay/stripe/payment_method.rb
201
184
  - lib/pay/stripe/subscription.rb
202
185
  - lib/pay/stripe/webhooks/account_updated.rb
203
186
  - lib/pay/stripe/webhooks/charge_refunded.rb
@@ -209,7 +192,6 @@ files:
209
192
  - lib/pay/stripe/webhooks/payment_action_required.rb
210
193
  - lib/pay/stripe/webhooks/payment_intent_succeeded.rb
211
194
  - lib/pay/stripe/webhooks/payment_method_attached.rb
212
- - lib/pay/stripe/webhooks/payment_method_automatically_updated.rb
213
195
  - lib/pay/stripe/webhooks/payment_method_detached.rb
214
196
  - lib/pay/stripe/webhooks/payment_method_updated.rb
215
197
  - lib/pay/stripe/webhooks/subscription_created.rb
@@ -219,6 +201,7 @@ files:
219
201
  - lib/pay/version.rb
220
202
  - lib/pay/webhooks.rb
221
203
  - lib/pay/webhooks/delegator.rb
204
+ - lib/pay/webhooks/process_job.rb
222
205
  homepage: https://github.com/pay-rails/pay
223
206
  licenses:
224
207
  - MIT
@@ -238,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
238
221
  - !ruby/object:Gem::Version
239
222
  version: '0'
240
223
  requirements: []
241
- rubygems_version: 3.2.15
224
+ rubygems_version: 3.2.22
242
225
  signing_key:
243
226
  specification_version: 4
244
227
  summary: Payments engine for Ruby on Rails
@@ -1,17 +0,0 @@
1
- class CreatePaySubscriptions < ActiveRecord::Migration[4.2]
2
- def change
3
- create_table :pay_subscriptions do |t|
4
- # Some Billable objects use string as ID, add `type: :string` if needed
5
- t.references :owner, polymorphic: true
6
- t.string :name, null: false
7
- t.string :processor, null: false
8
- t.string :processor_id, null: false
9
- t.string :processor_plan, null: false
10
- t.integer :quantity, default: 1, null: false
11
- t.datetime :trial_ends_at
12
- t.datetime :ends_at
13
-
14
- t.timestamps
15
- end
16
- end
17
- end
@@ -1,18 +0,0 @@
1
- class CreatePayCharges < ActiveRecord::Migration[4.2]
2
- def change
3
- create_table :pay_charges do |t|
4
- # Some Billable objects use string as ID, add `type: :string` if needed
5
- t.references :owner, polymorphic: true
6
- t.string :processor, null: false
7
- t.string :processor_id, null: false
8
- t.integer :amount, null: false
9
- t.integer :amount_refunded
10
- t.string :card_type
11
- t.string :card_last4
12
- t.string :card_exp_month
13
- t.string :card_exp_year
14
-
15
- t.timestamps
16
- end
17
- end
18
- end