Sha256: c0e459e352f33fb204a1b0d2705386ed19ccc611ce877d8923c45c253c6c45d4

Contents?: true

Size: 916 Bytes

Versions: 3

Compression:

Stored size: 916 Bytes

Contents

class StripePrice < StripeModelCallbacks::ApplicationRecord
  def self.stripe_class
    Stripe::Price
  end

  def assign_from_stripe(object)
    check_object_is_stripe_class(object)

    assign_attributes(
      stripe_id: object.id,
      stripe_product_id: object.product,
      recurring_aggregate_usage: object.recurring&.aggregate_usage,
      recurring_interval: object.recurring&.interval,
      recurring_interval_count: object.recurring&.interval_count,
      recurring_usage_type: object.recurring&.usage_type,
      transform_quantity_divide_by: object.transform_quantity&.divide_by,
      transform_quantity_round: object.transform_quantity&.round
    )

    StripeModelCallbacks::AttributesAssignerService.execute!(
      model: self, stripe_model: object,
      attributes: %w[
        active billing_scheme created currency lookup_key metadata nickname tiers_mode unit_amount
      ]
    )
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
stripe_model_callbacks-0.1.5 lib/stripe_model_callbacks/models/stripe_price.rb
stripe_model_callbacks-0.1.4 lib/stripe_model_callbacks/models/stripe_price.rb
stripe_model_callbacks-0.1.3 lib/stripe_model_callbacks/models/stripe_price.rb