Commit cbaea816e33725c4d49714377abb13738b95c830

Authored by Luke Baker
1 parent bf6495ce

add valid xml response for *by_visitor_id calls

Showing 1 changed file with 12 additions and 18 deletions   Show diff stats
app/controllers/questions_controller.rb
... ... @@ -96,7 +96,7 @@ class QuestionsController < InheritedResources::Base
96 96 object_type = params[:object_type]
97 97 @question = current_user.questions.find(params[:id])
98 98  
99   - visitor_id_hash = {}
  99 + visitors = []
100 100 if object_type == "votes"
101 101 votes_by_visitor_id= Vote.all(:select => 'visitors.identifier as thevi, count(*) as the_votes_count',
102 102 :joins => :voter,
... ... @@ -105,7 +105,7 @@ class QuestionsController < InheritedResources::Base
105 105  
106 106  
107 107 votes_by_visitor_id.each do |visitor|
108   - visitor_id_hash[visitor.thevi] = visitor.the_votes_count
  108 + visitors.push({:visitor_id => visitor.thevi, :count => visitor.the_votes_count})
109 109 end
110 110 elsif object_type == "skips"
111 111 skips_by_visitor_id= Skip.all(:select => 'visitors.identifier as thevi, count(*) as the_votes_count',
... ... @@ -115,7 +115,7 @@ class QuestionsController < InheritedResources::Base
115 115  
116 116  
117 117 skips_by_visitor_id.each do |visitor|
118   - visitor_id_hash[visitor.thevi] = visitor.the_votes_count
  118 + visitors.push({:visitor_id => visitor.thevi, :count => visitor.the_votes_count})
119 119 end
120 120 elsif object_type == "uploaded_ideas"
121 121  
... ... @@ -135,7 +135,7 @@ class QuestionsController < InheritedResources::Base
135 135 end
136 136 logger.info(v.identifier)
137 137  
138   - visitor_id_hash[v.identifier] = visitor.ideas_count
  138 + visitors.push({:visitor_id => v.identifier, :count => visitor.ideas_count})
139 139 end
140 140  
141 141 elsif object_type == "bounces"
... ... @@ -152,27 +152,26 @@ class QuestionsController < InheritedResources::Base
152 152 v = Visitor.find(visitor_id, :select => 'identifier')
153 153  
154 154 if v.identifier
155   - visitor_id_hash[v.identifier] = 1
  155 + visitors.push({:visitor_id => v.identifier, :count => 1})
156 156 end
157 157 end
158 158 end
159 159 respond_to do |format|
160   - format.xml{ render :xml => visitor_id_hash.to_xml and return}
  160 + format.xml{ render :xml => visitors.to_xml and return}
161 161 end
162 162 end
163 163  
164 164 def all_num_votes_by_visitor_id
165 165 scope = params[:scope]
166 166  
  167 + visitors = []
167 168 if scope == "all_votes"
168 169  
169 170 votes_by_visitor_id= Vote.all(:select => 'visitors.identifier as thevi, count(*) as the_votes_count',
170 171 :joins => :voter,
171 172 :group => "voter_id")
172   - visitor_id_hash = {}
173 173 votes_by_visitor_id.each do |visitor|
174   - visitor_id_hash[visitor.thevi] = visitor.the_votes_count
175   - visitor_id_hash[visitor.thevi] = visitor.the_votes_count
  174 + visitors.push({:visitor_id => visitor.thevi, :count => visitor.the_votes_count})
176 175 end
177 176 elsif scope == "all_photocracy_votes"
178 177  
... ... @@ -180,10 +179,8 @@ class QuestionsController < InheritedResources::Base
180 179 :joins => :voter,
181 180 :conditions => { :visitors => { :site_id => PHOTOCRACY_SITE_ID }},
182 181 :group => "voter_id")
183   - visitor_id_hash = {}
184 182 votes_by_visitor_id.each do |visitor|
185   - visitor_id_hash[visitor.thevi] = visitor.the_votes_count
186   - visitor_id_hash[visitor.thevi] = visitor.the_votes_count
  183 + visitors.push({:visitor_id => visitor.thevi, :count => visitor.the_votes_count})
187 184 end
188 185 elsif scope == "all_aoi_votes"
189 186  
... ... @@ -191,24 +188,21 @@ class QuestionsController < InheritedResources::Base
191 188 :joins => :voter,
192 189 :conditions => { :visitors => { :site_id => ALLOURIDEAS_SITE_ID }},
193 190 :group => "voter_id")
194   - visitor_id_hash = {}
195 191 votes_by_visitor_id.each do |visitor|
196   - visitor_id_hash[visitor.thevi] = visitor.the_votes_count
197   - visitor_id_hash[visitor.thevi] = visitor.the_votes_count
  192 + visitors.push({:visitor_id => visitor.thevi, :count => visitor.the_votes_count})
198 193 end
199 194 elsif scope == "creators"
200 195  
201 196 questions_created_by_visitor_id = Question.all(:select => 'visitors.identifier as thevi, count(*) as questions_count',
202 197 :joins => :creator,
203 198 :group => 'creator_id')
204   - visitor_id_hash = {}
205 199 questions_created_by_visitor_id.each do |visitor|
206   - visitor_id_hash[visitor.thevi] = visitor.questions_count
  200 + visitors.push({:visitor_id => visitor.thevi, :count => visitor.questions_count})
207 201 end
208 202  
209 203 end
210 204 respond_to do |format|
211   - format.xml{ render :xml => visitor_id_hash.to_xml and return}
  205 + format.xml{ render :xml => visitors.to_xml and return}
212 206 end
213 207 end
214 208  
... ...