app/controllers/ahoy/messages_controller.rb in ahoy_email-0.0.1 vs app/controllers/ahoy/messages_controller.rb in ahoy_email-0.0.2
- old
+ new
@@ -1,9 +1,34 @@
module Ahoy
class MessagesController < ActionController::Base
+ before_filter :set_message
def open
- puts "OPENED!"
+ if @message and !@message.opened_at
+ @message.opened_at = Time.now
+ @message.save!
+ end
+ send_data Base64.decode64("R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="), type: "image/gif", disposition: "inline"
+ end
+
+ def click
+ if @message and !@message.clicked_at
+ @message.clicked_at = Time.now
+ @message.save!
+ end
+ url = params[:url]
+ signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new("sha1"), AhoyEmail.secret_token, url)
+ if params[:signature] == signature
+ redirect_to url
+ else
+ redirect_to main_app.root_url
+ end
+ end
+
+ protected
+
+ def set_message
+ @message = Ahoy::Message.where(token: params[:id]).first
end
end
end