Sha256: db2f8fd511f5a5b8802af62a0d7c921c49bc1167f9a9485c7488c66445132a00
Contents?: true
Size: 689 Bytes
Versions: 5
Compression:
Stored size: 689 Bytes
Contents
class StripeModelCallbacks::SyncFromStripe < StripeModelCallbacks::BaseService attr_reader :stripe_object def initialize(stripe_object:) @stripe_object = stripe_object end def perform model = model_class.find_by(stripe_id: stripe_object.id) if model model.stripe_object = stripe_object model.assign_from_stripe(stripe_object) model.save! if model.changed? else model = model_class.create_from_stripe!(stripe_object) end succeed!(model: model) end def model_class_name @model_class_name ||= stripe_object.class.name.gsub("::", "") end def model_class @model_class ||= model_class_name.safe_constantize end end
Version data entries
5 entries across 5 versions & 1 rubygems