Sha256: 25d0aa963f3507ad822c6d79ca83be85299f9ae30ed0c58a62d47c8353f40a98

Contents?: true

Size: 985 Bytes

Versions: 8

Compression:

Stored size: 985 Bytes

Contents

module Audits1984
  class FilteredSessions
    include ActiveModel::Model
    include ActiveModel::Attributes

    attribute :from_date, :date
    attribute :to_date, :date
    attribute :sensitive_only, :boolean

    def self.resume(attributes)
      new attributes&.with_indifferent_access&.slice(*attribute_names)
    end

    def to_h
      attributes.compact.transform_values(&:to_s)
    end

    def all
      sessions = Console1984::Session.order(created_at: :desc, id: :desc)
      sessions = sessions.sensitive if sensitive_only
      sessions = sessions.where("console1984_sessions.created_at >= ?", from_date.beginning_of_day) if from_date.present?
      sessions = sessions.where("console1984_sessions.created_at <= ?", to_date.end_of_day) if to_date.present?
      sessions
    end

    def pending_session_after(session)
      all.pending.where("console1984_sessions.created_at < ? OR console1984_sessions.id < ?", session.created_at, session.id).first
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
audits1984-0.1.7 app/models/audits1984/filtered_sessions.rb
audits1984-0.1.6 app/models/audits1984/filtered_sessions.rb
audits1984-0.1.5 app/models/audits1984/filtered_sessions.rb
audits1984-0.1.4 app/models/audits1984/filtered_sessions.rb
audits1984-0.1.3 app/models/audits1984/filtered_sessions.rb
audits1984-0.1.2 app/models/audits1984/filtered_sessions.rb
audits1984-0.1.1 app/models/audits1984/filtered_sessions.rb
audits1984-0.1.0 app/models/audits1984/filtered_sessions.rb