class StripeInvoice
Public Class Methods
stripe_class()
click to toggle source
# File lib/stripe_model_callbacks/models/stripe_invoice.rb, line 14 def self.stripe_class Stripe::Invoice end
Public Instance Methods
assign_from_stripe(object)
click to toggle source
# File lib/stripe_model_callbacks/models/stripe_invoice.rb, line 18 def assign_from_stripe(object) assign_attributes( stripe_charge_id: object.charge, stripe_customer_id: object.customer, stripe_subscription_id: object.subscription, due_date: object.due_date ? Time.zone.at(object.due_date) : nil, period_start: Time.zone.at(object.period_start), period_end: Time.zone.at(object.period_end) ) assign_created(object) assign_amounts(object) StripeModelCallbacks::AttributesAssignerService.execute!( model: self, stripe_model: object, attributes: %w[ attempted attempt_count billing closed currency description forgiven id livemode ending_balance forgiven next_payment_attempt number paid receipt_number starting_balance statement_descriptor tax_percent ] ) assign_invoice_items(object) end
Private Instance Methods
assign_amounts(object)
click to toggle source
# File lib/stripe_model_callbacks/models/stripe_invoice.rb, line 45 def assign_amounts(object) assign_attributes( amount_due: Money.new(object.amount_due, object.currency), application_fee: object.application_fee ? Money.new(object.application_fee, object.currency) : nil, stripe_discount_id: stripe_discount_id_from_object(object), subtotal: Money.new(object.subtotal, object.currency), tax: object.tax ? Money.new(object.tax, object.currency) : nil, total: object.total ? Money.new(object.total, object.currency) : nil ) end
assign_created(object)
click to toggle source
# File lib/stripe_model_callbacks/models/stripe_invoice.rb, line 56 def assign_created(object) # The date-field was renamed to created on 2019-03-14 if object.respond_to?(:date) self.created = Time.zone.at(object.date) else self.created = Time.zone.at(object.created) end end
assign_invoice_items(object)
click to toggle source
# File lib/stripe_model_callbacks/models/stripe_invoice.rb, line 65 def assign_invoice_items(object) object.lines.each do |item| # Has to be found this way to actually update the values invoice_item = stripe_invoice_items.find do |invoice_item_i| invoice_item_i.stripe_id == item.id && invoice_item_i.stripe_subscription_item_id == item.subscription_item && invoice_item_i.stripe_plan_id == item.plan&.id end invoice_item ||= stripe_invoice_items.build invoice_item.stripe_invoice_id = object.id invoice_item&.assign_from_stripe(item) end end
stripe_discount_id_from_object(object)
click to toggle source
# File lib/stripe_model_callbacks/models/stripe_invoice.rb, line 80 def stripe_discount_id_from_object(object) return nil unless object.discount response = StripeModelCallbacks::Customer::DiscountUpdatedService.execute(object: object.discount) raise response.errors.join(". ") if response.errors.any? response.result.id end