Send reminder emails and update reminder sent state
This commit is contained in:
parent
698e42c025
commit
65a80d2d9e
|
@ -2,7 +2,7 @@ class AddressesController < ApplicationController
|
||||||
respond_to :json
|
respond_to :json
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@address = Address.find_lat_lng("#{params[:address]}, #{params[:city_state]}")
|
@address = Address.geocode("#{params[:address]}, #{params[:city_state]}")
|
||||||
unless @address.blank?
|
unless @address.blank?
|
||||||
respond_with @address
|
respond_with @address
|
||||||
else
|
else
|
||||||
|
|
|
@ -2,16 +2,13 @@ class RemindersController < ApplicationController
|
||||||
respond_to :json
|
respond_to :json
|
||||||
|
|
||||||
def create
|
def create
|
||||||
puts params[:reminder].inspect
|
|
||||||
@reminder = Reminder.new(params[:reminder])
|
@reminder = Reminder.new(params[:reminder])
|
||||||
|
|
||||||
if @reminder.save
|
if @reminder.save
|
||||||
|
HydrantMailer.reminder_email(@reminder.hydrant).deliver
|
||||||
|
@reminder.update_attribute(:sent, true)
|
||||||
render(:json => @reminder)
|
render(:json => @reminder)
|
||||||
else
|
else
|
||||||
render(:json => {"errors" => @reminder.errors}, :status => 500)
|
render(:json => {"errors" => @reminder.errors}, :status => 500)
|
||||||
end
|
end
|
||||||
# ReminderMailer.send_reminder
|
|
||||||
# @reminder.sent = true
|
|
||||||
# @reminder.save!
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
class HydrantMailer < ActionMailer::Base
|
||||||
|
default :from => "hello@#{default_url_options[:host]}"
|
||||||
|
|
||||||
|
def reminder_email(hydrant)
|
||||||
|
@hydrant = hydrant
|
||||||
|
@user = hydrant.user
|
||||||
|
mail(
|
||||||
|
:to => hydrant.user.email,
|
||||||
|
:from => "reminder@#{default_url_options[:host]}",
|
||||||
|
:subject => ["Remember to Shovel", hydrant.name].compact.join(' '),
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,2 +0,0 @@
|
||||||
class ReminderMailer < ActionMailer::Base
|
|
||||||
end
|
|
|
@ -1,7 +1,7 @@
|
||||||
class Address
|
class Address
|
||||||
include Geokit::Geocoders
|
include Geokit::Geocoders
|
||||||
|
|
||||||
def self.find_lat_lng(address)
|
def self.geocode(address)
|
||||||
MultiGeocoder.geocode(address).ll.split(',').map{|s| s.to_f}
|
MultiGeocoder.geocode(address).ll.split(',').map{|s| s.to_f}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
class Hydrant < ActiveRecord::Base
|
class Hydrant < ActiveRecord::Base
|
||||||
|
include Geokit::Geocoders
|
||||||
validates_presence_of :lat, :lng
|
validates_presence_of :lat, :lng
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
has_many :reminders
|
has_many :reminders
|
||||||
|
@ -13,8 +14,47 @@ class Hydrant < ActiveRecord::Base
|
||||||
Hydrant.find_by_sql([query, lat.to_f, lng.to_f, lat.to_f, limit.to_i])
|
Hydrant.find_by_sql([query, lat.to_f, lng.to_f, lat.to_f, limit.to_i])
|
||||||
end
|
end
|
||||||
|
|
||||||
def adopted?
|
def reverse_geocode
|
||||||
!user.nil?
|
@reverse_geocode ||= MultiGeocoder.reverse_geocode([lat, lng])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def street_number
|
||||||
|
reverse_geocode.street_number
|
||||||
|
end
|
||||||
|
|
||||||
|
def street_name
|
||||||
|
reverse_geocode.street_name
|
||||||
|
end
|
||||||
|
|
||||||
|
def street_address
|
||||||
|
reverse_geocode.street_address
|
||||||
|
end
|
||||||
|
|
||||||
|
def city
|
||||||
|
reverse_geocode.city
|
||||||
|
end
|
||||||
|
|
||||||
|
def state
|
||||||
|
reverse_geocode.state
|
||||||
|
end
|
||||||
|
|
||||||
|
def zip
|
||||||
|
reverse_geocode.zip
|
||||||
|
end
|
||||||
|
|
||||||
|
def country_code
|
||||||
|
reverse_geocode.country_code
|
||||||
|
end
|
||||||
|
|
||||||
|
def country
|
||||||
|
reverse_geocode.country
|
||||||
|
end
|
||||||
|
|
||||||
|
def full_address
|
||||||
|
reverse_geocode.full_address
|
||||||
|
end
|
||||||
|
|
||||||
|
def adopted?
|
||||||
|
!user_id.nil?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
<%= @hydrant.user.name.split.first %>,
|
||||||
|
|
||||||
|
Did you remember to shovel out <%= @hydrant.name %>, the fire hydrant you adopted at <%= @hydrant.street_address %>? If not, please shovel your hydrant as soon as possible!
|
||||||
|
|
||||||
|
If you've already shoveled out <%= @hydrant.name %>, thank you for serving your city!
|
||||||
|
|
||||||
|
Mayor Tom Menino
|
|
@ -0,0 +1,4 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class HydrantMailerTest < ActionMailer::TestCase
|
||||||
|
end
|
|
@ -1,4 +0,0 @@
|
||||||
require 'test_helper'
|
|
||||||
|
|
||||||
class ReminderMailerTest < ActionMailer::TestCase
|
|
||||||
end
|
|
Loading…
Reference in New Issue