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

Version Path
station-0.0.113 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.112 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.111 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.110 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.109 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.108 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.107 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.106 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.105 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.104 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.103 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.102 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.101 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.100 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.97 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.96 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.95 lib/nexmo_developer/app/models/feedback/feedback.rb
station-0.0.93 lib/nexmo_developer/app/models/feedback/feedback.rb