Sha256: c3d25c8a9951167632c15e42a1983e0285afaa086843f3519cab9a89d85731db
Contents?: true
Size: 1.89 KB
Versions: 3
Compression:
Stored size: 1.89 KB
Contents
module CensorBear class ReviewLog < ApplicationRecord include AASM belongs_to :record, polymorphic: true, optional: true belongs_to :user, class_name: CensorBear.config.user_class, foreign_key: "user_id", optional: true belongs_to :operator, class_name: CensorBear.config.user_class, foreign_key: "operator_id", optional: true delegate *CensorBear::RecordHook.public_instance_methods, to: :record, allow_nil: true aasm timestamps: true do state :pending, initial: true state :rejected, :passed, :suspended, :removed event :reject do transitions from: %i[pending suspended], to: :rejected, after: Proc.new { |*args| censor_reject; update!(operator: args[0]) } end event :undo_reject do transitions from: %i[rejected], to: :pending, after: Proc.new { |*args| censor_undo_reject; update!(operator: args[0]) } end event :remove do transitions from: %i[pending suspended], to: :removed, after: Proc.new { |*args| censor_remove; update!(operator: args[0]) } end event :undo_remove do transitions from: %i[removed], to: :pending, after: Proc.new { |*args| censor_undo_remove; update!(operator: args[0]) } end event :approve do transitions from: %i[pending suspended], to: :passed, after: Proc.new { |*args| censor_approve; update!(operator: args[0]) } end event :undo_approve do transitions from: %i[passed rejected], to: :pending, after: Proc.new { |*args| censor_undo_approve; update!(operator: args[0]) } end end before_save :sync_operated_time def ban_user(_operator) censor_ban_user end def unset_reason update_columns(reason: nil) end def set_reason(reason) update_columns(reason: reason) end private def sync_operated_time self.operated_at = Time.current if aasm_state_changed? end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
censor_bear-0.1.21 | app/models/censor_bear/review_log.rb |
censor_bear-0.1.20 | app/models/censor_bear/review_log.rb |
censor_bear-0.1.19 | app/models/censor_bear/review_log.rb |