diff --git a/app/controllers/visitors_controller.rb b/app/controllers/visitors_controller.rb index 97a2271..ec390b3 100644 --- a/app/controllers/visitors_controller.rb +++ b/app/controllers/visitors_controller.rb @@ -27,4 +27,31 @@ class VisitorsController < InheritedResources::Base end end + def votes + @visitor = Visitor.find_by_identifier!(params[:id]) + votes = @visitor.votes(:include => [:choice, :loser_choice, :prompt]).order_by {|v| v.created_at} + response = [] + + votes.each do |vote| + winner = (vote.prompt.left_choice_id == vote.choice_id ? 'left' : 'right') + if vote.choice_id == vote.prompt.left_choice_id + left_choice = vote.choice + right_choice = vote.loser_choice + else + left_choice = vote.loser_choice + right_choice = vote.choice + end + vote_response = { + :winner => winner, + :id => vote.id, + :left_choice_id => left_choice.id, + :left_choice_data => left_choice.data, + :right_choice_id => right_choice.id, + :right_choice_data => right_choice.data + } + response << vote_response + end + + render :json => {:votes => response}.to_json + end end diff --git a/config/routes.rb b/config/routes.rb index ae5f064..4eafed9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,7 +1,7 @@ ActionController::Routing::Routes.draw do |map| #map.resources :clicks map.resources :densities - map.resources :visitors, :collection => {:objects_by_session_ids => :post} + map.resources :visitors, :collection => {:objects_by_session_ids => :post}, :member => {:votes => :get} map.resources :questions, :member => { :object_info_totals_by_date => :get, :object_info_by_visitor_id => :get, :export => :post, -- libgit2 0.21.2