API with more options, includes #712

This commit is contained in:
Stella Rouzi 2015-10-25 00:36:23 +03:00
parent 28e55f3f50
commit ecef151f91
7 changed files with 86 additions and 38 deletions

View file

@ -1,16 +1,18 @@
module Api
module V1
class SpeakersController < Api::BaseController
load_resource :conference, find_by: :short_title
respond_to :json
def index
if params[:conference_id].blank?
users = User.joins(:event_users)
else
if @conference
users = User.joins(event_users: { event: :conference })
users = users.where(conferences: { guid: params[:conference_id] })
users = users.where(conferences: { short_title: @conference.short_title })
else
users = User.joins(:event_users)
end
users = users.where(event_users: {event_role: :speaker})
users = users.where(event_users: {event_role: :speaker}).uniq
render json: users, each_serializer: SpeakerSerializer
end
end