mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 13:19:39 +02:00
* Rough draft of issue system * Simplify design * Remove stale files from merge conflicts * STI for issues * Cleanup * Improve Synth api key flow * Stub api key for test
35 lines
707 B
Ruby
35 lines
707 B
Ruby
class Issue < ApplicationRecord
|
|
belongs_to :issuable, polymorphic: true
|
|
|
|
after_initialize :set_default_severity
|
|
|
|
enum :severity, { critical: 1, error: 2, warning: 3, info: 4 }
|
|
|
|
validates :severity, presence: true
|
|
|
|
scope :active, -> { where(resolved_at: nil) }
|
|
scope :ordered, -> { order(:severity) }
|
|
|
|
def title
|
|
model_name.human
|
|
end
|
|
|
|
# The conditions that must be met for an issue to be fixed
|
|
def stale?
|
|
raise NotImplementedError, "#{self.class} must implement #{__method__}"
|
|
end
|
|
|
|
def resolve!
|
|
update!(resolved_at: Time.current)
|
|
end
|
|
|
|
def default_severity
|
|
:warning
|
|
end
|
|
|
|
private
|
|
|
|
def set_default_severity
|
|
self.severity ||= default_severity
|
|
end
|
|
end
|