Sha256: 42a2bdce6a3192d51feb17124af057109d0cd4c0b846c58bdbb213ea1949a85b

Contents?: true

Size: 945 Bytes

Versions: 62

Compression:

Stored size: 945 Bytes

Contents

module Workarea
  class User
    class AdminVisit
      include ApplicationDocument

      field :name, type: String
      field :path, type: String
      field :user_id, type: String

      index({ user_id: 1 })
      index({ created_at: 1 }, { expire_after_seconds: 4.weeks.seconds.to_i })

      def self.most_visited(user_id, limit = Workarea.config.admin_max_most_visited)
        results = collection.aggregate([
          {
            '$match' => { 'user_id' => user_id.to_s }
          },
          {
            '$group' => {
              '_id' => '$path',
              'name' => { '$first' => '$name' },
              'count' => { '$sum' => 1 }
            }
          },
          {
            '$sort' => { 'count' => -1 }
          },
          {
            '$limit' => limit
          }
        ])

        results.map do |result|
          { name: result['name'], path: result['_id'] }
        end
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.4.27 app/models/workarea/user/admin_visit.rb
workarea-core-3.5.4 app/models/workarea/user/admin_visit.rb
workarea-core-3.4.26 app/models/workarea/user/admin_visit.rb
workarea-core-3.5.3 app/models/workarea/user/admin_visit.rb
workarea-core-3.4.25 app/models/workarea/user/admin_visit.rb
workarea-core-3.5.2 app/models/workarea/user/admin_visit.rb
workarea-core-3.4.24 app/models/workarea/user/admin_visit.rb
workarea-core-3.5.1 app/models/workarea/user/admin_visit.rb
workarea-core-3.4.23 app/models/workarea/user/admin_visit.rb
workarea-core-3.4.22 app/models/workarea/user/admin_visit.rb
workarea-core-3.5.0 app/models/workarea/user/admin_visit.rb
workarea-core-3.4.21 app/models/workarea/user/admin_visit.rb
workarea-core-3.5.0.beta.1 app/models/workarea/user/admin_visit.rb
workarea-core-3.4.20 app/models/workarea/user/admin_visit.rb
workarea-core-3.4.19 app/models/workarea/user/admin_visit.rb
workarea-core-3.4.18 app/models/workarea/user/admin_visit.rb
workarea-core-3.4.17 app/models/workarea/user/admin_visit.rb
workarea-core-3.4.16 app/models/workarea/user/admin_visit.rb
workarea-core-3.4.15 app/models/workarea/user/admin_visit.rb
workarea-core-3.4.14 app/models/workarea/user/admin_visit.rb