Sha256: 7fb71f5148f31175e0d1ea8f157546200b5bb7be6ba3c7fd4ba33bec33e9fdbd

Contents?: true

Size: 983 Bytes

Versions: 5

Compression:

Stored size: 983 Bytes

Contents

class StripeRefund < StripeModelCallbacks::ApplicationRecord
  belongs_to :stripe_charge, optional: true, primary_key: "stripe_id"

  monetize :amount_cents, allow_nil: true

  def self.stripe_class
    Stripe::Refund
  end

  def assign_from_stripe(object)
    check_object_is_stripe_class(object)
    assign_attributes(
      amount: Money.new(object.amount, object.currency),
      stripe_charge_id: object.charge,
      created: Time.zone.at(object.created),
      livemode: object.try(:livemode) == true,
      metadata: JSON.generate(object.metadata)
    )

    StripeModelCallbacks::AttributesAssignerService.execute!(
      model: self,
      stripe_model: object,
      attributes: %w[balance_transaction currency reason receipt_number status]
    )

    self.failure_reason = object.failure_reason if object.respond_to?(:failure_reason)
    self.failure_balance_transaction = object.failure_balance_transaction if object.respond_to?(:failure_balance_transaction)
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
stripe_model_callbacks-0.1.7 lib/stripe_model_callbacks/models/stripe_refund.rb
stripe_model_callbacks-0.1.6 lib/stripe_model_callbacks/models/stripe_refund.rb
stripe_model_callbacks-0.1.5 lib/stripe_model_callbacks/models/stripe_refund.rb
stripe_model_callbacks-0.1.4 lib/stripe_model_callbacks/models/stripe_refund.rb
stripe_model_callbacks-0.1.3 lib/stripe_model_callbacks/models/stripe_refund.rb