2018-05-07 16:47:29 -07:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
2014-06-26 15:43:24 +03:00
|
|
|
module Api
|
|
|
|
|
module V1
|
|
|
|
|
class SpeakersController < Api::BaseController
|
2015-10-25 00:36:23 +03:00
|
|
|
load_resource :conference, find_by: :short_title
|
2014-06-26 15:43:24 +03:00
|
|
|
respond_to :json
|
2013-07-08 10:07:12 +02:00
|
|
|
|
2016-09-15 20:33:44 -07:00
|
|
|
# Disable forgery protection for any json requests. This is required for jsonp support
|
|
|
|
|
skip_before_action :verify_authenticity_token
|
|
|
|
|
|
2014-06-26 15:43:24 +03:00
|
|
|
def index
|
2015-10-25 00:36:23 +03:00
|
|
|
if @conference
|
2016-03-31 13:13:27 +05:30
|
|
|
users = User.joins(event_users: { event: { program: :conference} })
|
2015-10-25 00:36:23 +03:00
|
|
|
users = users.where(conferences: { short_title: @conference.short_title })
|
|
|
|
|
else
|
|
|
|
|
users = User.joins(:event_users)
|
2014-06-26 15:43:24 +03:00
|
|
|
end
|
2015-10-25 00:36:23 +03:00
|
|
|
|
|
|
|
|
users = users.where(event_users: {event_role: :speaker}).uniq
|
2018-09-29 15:56:12 -07:00
|
|
|
render json: users,
|
|
|
|
|
each_serializer: SpeakerSerializer,
|
|
|
|
|
callback: params['callback'],
|
|
|
|
|
root: 'speakers'
|
2014-06-26 15:43:24 +03:00
|
|
|
end
|
2013-07-08 10:07:12 +02:00
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|