Commit 0aa75809a7280e8b64f82f0e39f5b48b54880ff6
1 parent
c61d3c6b
Exists in
master
and in
1 other branch
adding api level voting to clickstream
Showing
3 changed files
with
9 additions
and
2 deletions
Show diff stats
app/controllers/prompts_controller.rb
@@ -49,8 +49,11 @@ class PromptsController < InheritedResources::Base | @@ -49,8 +49,11 @@ class PromptsController < InheritedResources::Base | ||
49 | authenticate | 49 | authenticate |
50 | 50 | ||
51 | logger.info "#{current_user.inspect} is voting #{direction} at #{Time.now}." | 51 | logger.info "#{current_user.inspect} is voting #{direction} at #{Time.now}." |
52 | + p = params[:click].except(:sid).merge(:visitor_id => current_user.visitors.find_or_create_by_identifier(params[:click][:sid]).id) | ||
53 | + | ||
52 | @question = Question.find(params[:question_id]) | 54 | @question = Question.find(params[:question_id]) |
53 | @prompt = @question.prompts.find(params[:id]) | 55 | @prompt = @question.prompts.find(params[:id]) |
56 | + | ||
54 | case direction | 57 | case direction |
55 | when :left | 58 | when :left |
56 | successful = c = current_user.record_vote(params['params']['auto'], @prompt, 0) | 59 | successful = c = current_user.record_vote(params['params']['auto'], @prompt, 0) |
app/models/user.rb
@@ -30,6 +30,8 @@ class User < ActiveRecord::Base | @@ -30,6 +30,8 @@ class User < ActiveRecord::Base | ||
30 | end | 30 | end |
31 | 31 | ||
32 | def record_vote(visitor_identifier, prompt, ordinality) | 32 | def record_vote(visitor_identifier, prompt, ordinality) |
33 | + @click = Click.new(:what_was_clicked => 'on the API level, inside record_vote' + " with prompt id #{prompt.id}, ordinality #{ordinality.to_s}") | ||
34 | + @click.save! | ||
33 | visitor = visitors.find_or_create_by_identifier(visitor_identifier) | 35 | visitor = visitors.find_or_create_by_identifier(visitor_identifier) |
34 | visitor.vote_for!(prompt, ordinality) | 36 | visitor.vote_for!(prompt, ordinality) |
35 | #prompt.choices.each {|c| c.compute_score; c.save!} | 37 | #prompt.choices.each {|c| c.compute_score; c.save!} |
app/models/visitor.rb
@@ -21,10 +21,12 @@ class Visitor < ActiveRecord::Base | @@ -21,10 +21,12 @@ class Visitor < ActiveRecord::Base | ||
21 | choices = prompt.choices | 21 | choices = prompt.choices |
22 | choice = choices[ordinality] #we need to guarantee that the choices are in the right order (by position) | 22 | choice = choices[ordinality] #we need to guarantee that the choices are in the right order (by position) |
23 | prompt_vote = votes.create!(:voteable => prompt) | 23 | prompt_vote = votes.create!(:voteable => prompt) |
24 | - logger.info "Visitor: #{self.inspect} voted for Prompt: #{prompt.inspect}" | 24 | + logger.info "Visitor: voted for Prompt: #{prompt.id.to_s}" |
25 | + @click = Click.new(:what_was_clicked => "on the API level, inside visitor#vote_for! with prompt id #{prompt.id}, ordinality #{ordinality.to_s}, choice: #{choice.item.data} (id: #{choice.id})") | ||
26 | + @click.save! | ||
25 | 27 | ||
26 | choice_vote = votes.create!(:voteable => choice) | 28 | choice_vote = votes.create!(:voteable => choice) |
27 | - logger.info "Visitor: #{self.inspect} voted for Choice: #{choice.inspect}" | 29 | + logger.info "Visitor: voted for Prompt: #{prompt.id.to_s} for choice #{choice.item.data}" |
28 | choice.save! | 30 | choice.save! |
29 | choice.score = choice.compute_score | 31 | choice.score = choice.compute_score |
30 | logger.info "Just computed the score for that choice and it's apparently #{choice.score}" | 32 | logger.info "Just computed the score for that choice and it's apparently #{choice.score}" |