mirror of
https://github.com/discourse/discourse.git
synced 2024-12-25 11:03:44 +08:00
3137e60653
This PR introduces a basic AdminNotice model to store these notices. Admin notices are categorized by their source/type (currently only notices from problem check.) They also have a priority.
33 lines
741 B
Ruby
33 lines
741 B
Ruby
# frozen_string_literal: true
|
|
|
|
class ProblemCheck::Problem
|
|
PRIORITIES = %w[low high].freeze
|
|
|
|
attr_reader :message, :priority, :identifier, :target, :details
|
|
|
|
def initialize(message, priority: "low", identifier: nil, target: nil, details: {})
|
|
@message = message
|
|
@priority = PRIORITIES.include?(priority) ? priority : "low"
|
|
@identifier = identifier
|
|
@target = target
|
|
@details = details
|
|
end
|
|
|
|
def to_s
|
|
@message
|
|
end
|
|
|
|
def to_h
|
|
{ message: message, priority: priority, identifier: identifier }
|
|
end
|
|
alias_method :attributes, :to_h
|
|
|
|
def self.from_h(h)
|
|
h = h.with_indifferent_access
|
|
|
|
return if h[:message].blank?
|
|
|
|
new(h[:message], priority: h[:priority], identifier: h[:identifier])
|
|
end
|
|
end
|