diff options
Diffstat (limited to 'app/controllers/memberships_controller.rb')
-rw-r--r-- | app/controllers/memberships_controller.rb | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/app/controllers/memberships_controller.rb b/app/controllers/memberships_controller.rb index 6a7bd50..dbd60ca 100644 --- a/app/controllers/memberships_controller.rb +++ b/app/controllers/memberships_controller.rb @@ -28,7 +28,7 @@ class MembershipsController < ApplicationController end def index - memberships = Membership.memberships(@participant) + memberships= index_querystring_list if memberships.empty? render :text => "", :content_type => "application/json", :layout => false else @@ -39,4 +39,26 @@ class MembershipsController < ApplicationController end end + private + + def index_querystring_list + header_querystrings = request.headers["X-EcsQueryStrings"] + if header_querystrings + hqs = header_querystrings.split(",").map{|s| s.strip}.map{|s| s.split("=").map{|s| s.strip}} + mainparticipants = (m=hqs.assoc("mainparticipants")) ? m[1] : nil + subparticipants = (m=hqs.assoc("subparticipants")) ? m[1] : nil + anonymous = (m=hqs.assoc("anonymous")) ? m[1] : nil + all = (m=hqs.assoc("all")) ? m[1] : nil + end + mainparticipants ||= params["mainparticipants"] ? params["mainparticipants"] : nil + subparticipants ||= params["subparticipants"] ? params["subparticipants"] : nil + anonymous ||= params["anonymous"] ? params["anonymous"] : nil + all ||= params["all"] ? params["all"] : nil + Membership.memberships(@participant,false, + { :mainparticipants => mainparticipants, + :subparticipants => subparticipants, + :anonymous => anonymous, + :all => all }) + end + end |