Sha256: c70cc41e7cccf70c2edf98d609529a2616bacae566f7c7461af6cc60ffc09d18
Contents?: true
Size: 1.14 KB
Versions: 18
Compression:
Stored size: 1.14 KB
Contents
module Feedback class Feedback < ApplicationRecord scope :created_after, ->(date) { where('feedback_feedbacks.created_at >= ?', date) if date.present? } scope :created_before, ->(date) { where('feedback_feedbacks.created_at <= ?', date) if date.present? } scope :created_between, ->(start_date, end_date) { created_after(start_date).created_before(end_date) } belongs_to :resource, class_name: '::Feedback::Resource' belongs_to :owner, polymorphic: true belongs_to :config, optional: true, class_name: '::Feedback::Config', foreign_key: 'feedback_config_id', inverse_of: :feedbacks attr_accessor :email, :source before_validation :set_resource validates :sentiment, presence: true validates :owner, presence: true scope :positive, -> { where(sentiment: 'positive') } scope :negative, -> { where(sentiment: 'negative') } scope :neutral, -> { where(sentiment: 'neutral') } after_commit :notify def set_resource self.resource ||= Resource.find_or_create_by!(uri: source) end def notify return unless ENV['SLACK_WEBHOOK'] FeedbackSlackNotifier.call(self) end end end
Version data entries
18 entries across 18 versions & 1 rubygems