XMLRPC: Add translator from candidate ID to names
authorJohn Dong <jdong@mit.edu>
Wed, 15 Aug 2007 16:30:25 +0000 (12:30 -0400)
committerJohn Dong <jdong@mit.edu>
Wed, 15 Aug 2007 16:30:25 +0000 (12:30 -0400)
app/apis/selectricity_api.rb
app/models/selectricity_service.rb

index d478a5a8b6f9b26f5548d47cbf0683fb23ca85ac..da2f6f725f3a1698b2fb9ad42f7dbc752ac706fe 100644 (file)
@@ -15,6 +15,7 @@ class SelectricityAPI < ActionWebService::API::Base
   api_method :cast_quickvote, :expects => [:int, :int, [[:int]]], :returns => [:string]
   api_method :get_quickvote_results, :expects => [:string], :returns => [VoteResultStruct]
   api_method :get_quickvote_candidate_map, :expects => [:string], :returns => [CandidateMap]
+  api_method :quickvote_candidate_ids_to_names, :expects => [:string,[:int]], :returns => [[:string]]
 end
 
 
index 75d2e3e775a72e5207ea2ac7146c3c8cbc9f7c70..eb09d8d51f022a25b992d3c614ed3736f9c8b218 100644 (file)
@@ -5,6 +5,23 @@ class SelectricityService < ActionWebService::Base
   def cast_quickvote(election_id, vote_id, vote_list)
     #Obviously not implemented
   end
+  def quickvote_candidate_ids_to_names(shortname, id_list)
+    qv=QuickVote.ident_to_quickvote(shortname)
+    candidates={}
+    return [] unless qv
+    qv.results
+    qv.candidates.each {|c| candidates[c.id] = c}
+    results=[]
+    id_list.each { |id|
+      name=candidates[id]
+      if name
+        results << name
+      else
+        results << ""
+      end
+    }
+    results
+  end
   def get_quickvote_results(shortname)
     #TODO: Validate shortname
     qv=QuickVote.ident_to_quickvote(shortname)

Benjamin Mako Hill || Want to submit a patch?