Sha256: f2ee6a82b492ec920a34b02321ffc10344bf9fa69689dcb819322f3e2f0272e1
Contents?: true
Size: 1.08 KB
Versions: 5
Compression:
Stored size: 1.08 KB
Contents
class StripeModelCallbacks::SubscriptionSchedule::UpdatedService < StripeModelCallbacks::BaseEventService TRACKED_ACTIVITIES = { "subscription_schedule.canceled": :canceled }.with_indifferent_access.freeze private_constant :TRACKED_ACTIVITIES def perform subscription_schedule.assign_from_stripe(object) set_cancellation_date if canceled? return success_actions if subscription_schedule.save fail!(subscription_schedule.errors.full_messages) end private def canceled? @canceled ||= event.type == "subscription_schedule.canceled" end def create_activity return unless tracked_activities[event.type] subscription_schedule.create_activity(tracked_activities[event.type]) end def set_cancellation_date return unless canceled? subscription_schedule.canceled_at ||= Time.zone.now end def subscription_schedule @subscription_schedule ||= StripeSubscriptionSchedule.find_or_initialize_by(stripe_id: object.id) end def success_actions create_activity succeed! end def tracked_activities TRACKED_ACTIVITIES end end
Version data entries
5 entries across 5 versions & 1 rubygems