check.rb 823 B

12345678910111213141516171819202122232425262728293031
  1. module Blazer
  2. class Check < ActiveRecord::Base
  3. belongs_to :query
  4. validates :query_id, presence: true
  5. def split_emails
  6. emails.to_s.split(",").map(&:strip)
  7. end
  8. def update_state(rows, error)
  9. invert = self.respond_to?(:invert) && self.invert
  10. self.state =
  11. if error
  12. "error"
  13. elsif rows.any?
  14. invert ? "passing" : "failing"
  15. else
  16. invert ? "failing" : "passing"
  17. end
  18. self.last_run_at = Time.now if self.respond_to?(:last_run_at=)
  19. # do not notify on creation, except when not passing
  20. if (state_was || state != "passing") && state != state_was && emails.present?
  21. Blazer::CheckMailer.state_change(self, state, state_was, rows.size, error).deliver_later
  22. end
  23. save! if changed?
  24. end
  25. end
  26. end