Aucune description http://j1x-huginn.herokuapp.com

event.rb 865B

1234567891011121314151617181920212223242526272829
  1. require 'json_serialized_field'
  2. class Event < ActiveRecord::Base
  3. include JSONSerializedField
  4. attr_accessible :lat, :lng, :payload, :user_id, :user, :expires_at
  5. acts_as_mappable
  6. json_serialize :payload
  7. belongs_to :user
  8. belongs_to :agent, :counter_cache => true, :touch => :last_event_at
  9. scope :recent, lambda { |timespan = 12.hours.ago|
  10. where("events.created_at > ?", timespan)
  11. }
  12. def reemit!
  13. agent.create_event :payload => payload, :lat => lat, :lng => lng
  14. end
  15. def self.cleanup_expired!
  16. affected_agents = Event.where("expires_at IS NOT NULL AND expires_at < ?", Time.now).group("agent_id").pluck(:agent_id)
  17. Event.where("expires_at IS NOT NULL AND expires_at < ?", Time.now).delete_all
  18. Agent.where(:id => affected_agents).update_all "events_count = (select count(*) from events where agent_id = agents.id)"
  19. end
  20. end