Methods
Included Modules
- Mongoid::Document
- Analytics::Siteable
Class Public methods
all_time_count_for(site:, content_type:) Link
Source: show
# File app/models/analytics/view_count.rb, line 38 def all_time_count_for(site:, content_type:) collection.aggregate( [ {:$match => {siteId: site.id, contentType: content_type}}, {:$group => {_id: nil, totalViews: {:$sum => "$totalViews"}}} ] ).entries.dig(0, "totalViews").presence || 0 end
upsert(content: nil, details: {}) Link
Source: show
# File app/models/analytics/view_count.rb, line 20 def upsert(content: nil, details: {}) return false unless content.present? site_id = content.site_id content_id = content.id content_type = content.class.name day = I18n.l(Time.current, format: :analytics).to_i collection.bulk_write( [ update_current_day_counter(site_id, content_id, content_type, day, details), create_current_day_counter(site_id, content_id, content_type, day, details), initialize_global_counter(site_id, content_id, content_type, day, details) ] ) end
Instance Public methods
action() Link
Source: show
# File app/models/analytics/view_count.rb, line 107 def action "view_count" end