68 lines
2.0 KiB
Ruby
Executable File
68 lines
2.0 KiB
Ruby
Executable File
class DoorLogsController < ApplicationController
|
|
authorize_resource :except => :auto_download
|
|
before_filter :authenticate_user!, :except => :auto_download
|
|
|
|
# GET /door_logs
|
|
# GET /door_logs.json
|
|
def index
|
|
# @door_logs = DoorLog.find(:all, :order => "created_at DESC", :limit => 1000)
|
|
@door_logs = DoorLog.where("key NOT LIKE 'alarm%' AND key != 'armed' AND key != 'activated'").order("created_at DESC").limit(1000)
|
|
|
|
|
|
begin
|
|
@start_date = DateTime.parse(params[:start])
|
|
@end_date = DateTime.parse(params[:end])
|
|
rescue
|
|
@start_date = DateTime.now - 2.weeks
|
|
@end_date = DateTime.now
|
|
end
|
|
|
|
@door_logs_by_hour = DoorLog.where("created_at > ? AND created_at < ? AND (key = ? OR key = ?)", @start_date, @end_date,"door_1_locked","door_2_locked").order("created_at ASC").group_by(&:key)
|
|
@door_log_graph = [
|
|
@door_logs_by_hour["door_1_locked"].map{|d| [d.created_at.to_time.to_i*1000, 1^d.data.to_i]}, # use XOR to invert 1 into 0 and vice versa
|
|
@door_logs_by_hour["door_2_locked"].map{|d| [d.created_at.to_time.to_i*1000, 1^d.data.to_i]}
|
|
]
|
|
|
|
# @door_logs_by_hour.each do |door_log|
|
|
# # Add one computer for activate, subtract one for deactivate
|
|
# if door_log.data == 1
|
|
#
|
|
# elsif door_log.data == 0
|
|
# mac_running_balance -= 1
|
|
# end
|
|
|
|
# @door_log_graph << [time.to_time.to_i*1000,mac_running_balance]
|
|
# end
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
format.html # index.html.erb
|
|
format.json { render :json => @door_logs }
|
|
end
|
|
end
|
|
|
|
# GET /door_logs/download
|
|
def download
|
|
@results = DoorLog.download_from_door
|
|
|
|
respond_to do |format|
|
|
format.html # show.html.erb
|
|
format.json { render :json => @results }
|
|
end
|
|
end
|
|
|
|
# GET /door_logs/auto_download
|
|
def auto_download
|
|
@results = DoorLog.download_from_door
|
|
@status = DoorLog.download_status # for space_api
|
|
|
|
respond_to do |format|
|
|
format.html # show.html.erb
|
|
format.json { render :json => @results }
|
|
end
|
|
end
|
|
|
|
|
|
end
|