Sha256: c88e0997f10293a45eff088cc249da22955e41cf2d8c190dcab8874ee640170d

Contents?: true

Size: 1.3 KB

Versions: 22

Compression:

Stored size: 1.3 KB

Contents

module PatronusFati::DataModels
  class Client
    include DataMapper::Resource

    include PatronusFati::DataModels::ExpirationAttributes
    include PatronusFati::DataModels::ReportedAttributes

    property  :id,              Serial
    property  :bssid,           String,   :length => 17, :unique_index => true
    property  :channel,         Integer
    property  :max_seen_rate,   Integer

    has n, :connections,    :constraint => :destroy
    has n, :access_points,  :through    => :connections

    has n, :probes,             :constraint => :destroy

    belongs_to :mac, :required => false
    before :save do
      self.mac = Mac.first_or_create(mac: bssid)
    end

    def self.current_expiration_threshold
      Time.now.to_i - PatronusFati::CLIENT_EXPIRATION
    end

    def connected_access_points
      connections.active.access_points
    end

    def disconnect!
      connections.connected.map(&:disconnect!)
    end

    def full_state
      blacklisted_keys = %w(id last_seen_at reported_online).map(&:to_sym)
      base_attrs = attributes.reject { |k, v| blacklisted_keys.include?(k) || v.nil? }
      base_attrs.merge(
        active: active?,
        connected_access_points: connected_access_points.map(&:bssid),
        probes: probes.map(&:essid),
        vendor: mac.vendor
      )
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
patronus_fati-0.9.11 lib/patronus_fati/data_models/client.rb
patronus_fati-0.9.10 lib/patronus_fati/data_models/client.rb
patronus_fati-0.9.9 lib/patronus_fati/data_models/client.rb
patronus_fati-0.9.8 lib/patronus_fati/data_models/client.rb
patronus_fati-0.9.7 lib/patronus_fati/data_models/client.rb
patronus_fati-0.9.6 lib/patronus_fati/data_models/client.rb
patronus_fati-0.9.5 lib/patronus_fati/data_models/client.rb
patronus_fati-0.9.4 lib/patronus_fati/data_models/client.rb
patronus_fati-0.9.3 lib/patronus_fati/data_models/client.rb
patronus_fati-0.9.2 lib/patronus_fati/data_models/client.rb
patronus_fati-0.9.1 lib/patronus_fati/data_models/client.rb
patronus_fati-0.9.0 lib/patronus_fati/data_models/client.rb
patronus_fati-0.8.18 lib/patronus_fati/data_models/client.rb
patronus_fati-0.8.17 lib/patronus_fati/data_models/client.rb
patronus_fati-0.8.16 lib/patronus_fati/data_models/client.rb
patronus_fati-0.8.15 lib/patronus_fati/data_models/client.rb
patronus_fati-0.8.14 lib/patronus_fati/data_models/client.rb
patronus_fati-0.8.13 lib/patronus_fati/data_models/client.rb
patronus_fati-0.8.12 lib/patronus_fati/data_models/client.rb
patronus_fati-0.8.11 lib/patronus_fati/data_models/client.rb