module ActiveWebhook::Models::SubscriptionAdditions

Public Instance Methods

clean_error_log() click to toggle source
# File lib/active_webhook/models/subscription_additions.rb, line 27
def clean_error_log
  error_logs.delete_all if previous_changes.key?(:disabled_at) && enabled?
end
disable(reason = nil) click to toggle source
# File lib/active_webhook/models/subscription_additions.rb, line 43
def disable(reason = nil)
  self.disabled_at = Time.current
  self.disabled_reason = reason
end
disable!(reason = nil) click to toggle source
# File lib/active_webhook/models/subscription_additions.rb, line 48
def disable!(reason = nil)
  disable reason
  save!
end
disabled?() click to toggle source
# File lib/active_webhook/models/subscription_additions.rb, line 63
def disabled?
  !enabled?
end
enable() click to toggle source
# File lib/active_webhook/models/subscription_additions.rb, line 53
def enable
  self.disabled_at = nil
  self.disabled_reason = nil
end
enable!() click to toggle source
# File lib/active_webhook/models/subscription_additions.rb, line 58
def enable!
  enable
  save!
end
enabled?() click to toggle source
# File lib/active_webhook/models/subscription_additions.rb, line 67
def enabled?
  disabled_at.nil?
end
ensure_error_log_requirement_is_met!(max_errors_per_hour) click to toggle source
# File lib/active_webhook/models/subscription_additions.rb, line 31
def ensure_error_log_requirement_is_met! max_errors_per_hour
  return false if disabled?

  if max_errors_per_hour.present? && error_logs.where('created_at > ?', 1.hour.ago).count > max_errors_per_hour
    disable! "Exceeded max_errors_per_hour of (#{max_errors_per_hour})"
    return true
  end
rescue StandardError
  # intentionally squash errors so that we don't end up in a loop where queue adapter retries and locks table
  false
end
set_disabled_reason() click to toggle source
# File lib/active_webhook/models/subscription_additions.rb, line 23
def set_disabled_reason
  self.disabled_reason = nil if self.disabled_at.nil?
end