Adding door alert emails (test mode) and adjusting door log graph view
This commit is contained in:
parent
1d6699ae9f
commit
3ce0d3c45a
|
@ -1,8 +1,8 @@
|
||||||
class SpaceApiController < ApplicationController
|
class SpaceApiController < ApplicationController
|
||||||
# Individually remove authorizing stuff since there is no SpaceApi model
|
# Individually remove authorizing stuff since there is no SpaceApi model
|
||||||
authorize_resource :except => [:index, :access, :access_post]
|
authorize_resource :except => [:index, :access, :access_post, :alert_if_not_status]
|
||||||
# User auth here happens via params, instead of form.
|
# User auth here happens via params, instead of form.
|
||||||
before_filter :authenticate_user!, :except => [:index, :access, :access_post]
|
before_filter :authenticate_user!, :except => [:index, :access, :access_post, :alert_if_not_status]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@json = JSON.parse(Setting.space_api_json_template)
|
@json = JSON.parse(Setting.space_api_json_template)
|
||||||
|
@ -102,4 +102,25 @@ class SpaceApiController < ApplicationController
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Expect status to be "open" or "closed"
|
||||||
|
def alert_if_not_status
|
||||||
|
@expected_status = params['status']
|
||||||
|
@status = DoorLog.show_status
|
||||||
|
|
||||||
|
if !["open","closed"].include?(@expected_status)
|
||||||
|
@output = "USAGE: Specify an expected status (/alert_if_not/open or /alert_if_not/closed). Alert emails will be sent if status doesn't match."
|
||||||
|
elsif @expected_status.to_s == "open" && @status[:unlocked] == true
|
||||||
|
@output = "Unlocked Status is OK."
|
||||||
|
elsif @expected_status.to_s == "closed" && @status[:unlocked] == false
|
||||||
|
@output = "Unlocked Status is OK."
|
||||||
|
else
|
||||||
|
@output = "Unlocked Status is NOT OK. Alerting."
|
||||||
|
@output += " - Mail result: "
|
||||||
|
@output += DoorMailer.alert(@status).deliver.inspect
|
||||||
|
end
|
||||||
|
|
||||||
|
response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
|
||||||
|
render :json => {response: @output, status: @status}
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
12
app/mailers/door_mailer.rb
Executable file
12
app/mailers/door_mailer.rb
Executable file
|
@ -0,0 +1,12 @@
|
||||||
|
class DoorMailer < ActionMailer::Base
|
||||||
|
default :from => "no-reply@heatsynclabs.org"
|
||||||
|
|
||||||
|
def alert(status)
|
||||||
|
@url = "http://members.heatsynclabs.org"
|
||||||
|
@status = status
|
||||||
|
|
||||||
|
mail(:to => 'will@heatsynclabs.org',
|
||||||
|
:subject => "HSL Doors")
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -12,8 +12,8 @@ $(function() {
|
||||||
|
|
||||||
$( "#graph-dialog" ).dialog({
|
$( "#graph-dialog" ).dialog({
|
||||||
autoOpen: false,
|
autoOpen: false,
|
||||||
height: 480,
|
height: 700,
|
||||||
width: 640,
|
width: 825,
|
||||||
modal: true,
|
modal: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ function generatePlotBands(start,end){
|
||||||
|
|
||||||
<div id="graph-dialog" title="Door Status">
|
<div id="graph-dialog" title="Door Status">
|
||||||
|
|
||||||
<div id="graph" style="height: 400px; width: 600px; float: right;"></div>
|
<div id="graph" style="height: 600px; width: 800px; float: right;"></div>
|
||||||
|
|
||||||
<%= form_tag(nil, :method => :get) do %>
|
<%= form_tag(nil, :method => :get) do %>
|
||||||
<label>Start Date
|
<label>Start Date
|
||||||
|
|
5
app/views/door_mailer/alert.html.erb
Executable file
5
app/views/door_mailer/alert.html.erb
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
It's <%= DateTime.current.to_time.strftime("%l:%M %p") %> and the doors are <%= @status[:unlocked] ? "open" : "not open" %> !
|
||||||
|
|
||||||
|
See more info at: <a href="http://live.heatsynclabs.org">http://live.heatsynclabs.org</a>
|
||||||
|
|
||||||
|
<a href="http://twitter.com/willbradley>@willbradley</a> programmed me to let y'all know, just in case. Cheers!
|
|
@ -55,6 +55,7 @@ Dooraccess::Application.routes.draw do
|
||||||
match 'cards/:id/upload' => 'cards#upload', :as => :upload
|
match 'cards/:id/upload' => 'cards#upload', :as => :upload
|
||||||
|
|
||||||
match 'space_api' => 'space_api#index', :as => :space_api
|
match 'space_api' => 'space_api#index', :as => :space_api
|
||||||
|
match 'space_api/alert_if_not/:status' => 'space_api#alert_if_not_status', :via => :get, :as => :space_api_alert_if_not_status
|
||||||
match 'space_api/access' => 'space_api#access', :via => :get, :as => :space_api_access
|
match 'space_api/access' => 'space_api#access', :via => :get, :as => :space_api_access
|
||||||
match 'space_api/access' => 'space_api#access_post', :via => :post
|
match 'space_api/access' => 'space_api#access_post', :via => :post
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user