123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- class StatsStore < ApplicationModel
- store :data
- def self.count_by_search(data)
-
- if data[:object]
- object_id = ObjectLookup.by_name( data[:object] )
- end
- StatsStore.where(stats_store_object_id: object_id, o_id: data[:o_id], key: data[:key])
- .where('created_at > ? AND created_at < ?', data[:start], data[:end]).count
- end
- def self.search(data)
-
- if data[:object]
- data[:stats_store_object_id] = ObjectLookup.by_name( data[:object] )
- data.delete(:object)
- end
- find_by(data)
- end
- def self.sync(params)
- data = params[:data]
- params.delete(:data)
- item = search(params)
- if item
- item.data = data
- item.save
- return item
- end
-
- if data[:object]
- data[:stats_store_object_id] = ObjectLookup.by_name( data[:object] )
- data.delete(:object)
- end
- params[:data] = data
- params[:created_by_id] = 1
- create(params)
- end
- def self.add(data)
-
- if data[:object]
- object_id = ObjectLookup.by_name( data[:object] )
- end
-
- record = {
- stats_store_object_id: object_id,
- o_id: data[:o_id],
- key: data[:key],
- data: data[:data],
- created_at: data[:created_at],
- created_by_id: data[:created_by_id],
- }
- StatsStore.create(record)
- end
- def self.cleanup(diff = 3.months)
- StatsStore.where('updated_at < ?', Time.zone.now - diff).delete_all
- true
- end
- end
|