json API for suseconferenceclient

This commit is contained in:
Ancor Gonzalez Sosa 2013-07-08 10:07:12 +02:00
parent d648ab7cb5
commit d95d8f234b
12 changed files with 159 additions and 8 deletions

View file

@ -2,6 +2,6 @@ class Api::V1::ConferencesController < Api::BaseController
respond_to :json
def index
respond_with Conference.all
render :json => Conference.all, :serializer => ConferencesArraySerializer
end
end

View file

@ -0,0 +1,11 @@
class Api::V1::EventsController < Api::BaseController
respond_to :json
def index
events = Event.includes(:conference, :track, :room, :event_type, {:event_people => :person})
unless params[:conference_id].blank?
events = events.where("conferences.guid" => params[:conference_id])
end
respond_with events
end
end

View file

@ -0,0 +1,13 @@
class Api::V1::RoomsController < Api::BaseController
respond_to :json
def index
if params[:conference_id].blank?
rooms = Room.all
else
conference = Conference.find_by_guid(params[:conference_id])
rooms = conference.rooms
end
respond_with rooms
end
end

View file

@ -0,0 +1,14 @@
class Api::V1::SpeakersController < Api::BaseController
respond_to :json
def index
if params[:conference_id].blank?
people = Person.joins(:event_people)
else
people = Person.joins(:event_people => {:event => :conference})
people = people.where("conferences.guid" => params[:conference_id])
end
people = people.where("event_people.event_role" => "speaker")
render :json => people, :each_serializer => SpeakerSerializer
end
end

View file

@ -0,0 +1,13 @@
class Api::V1::TracksController < Api::BaseController
respond_to :json
def index
if params[:conference_id].blank?
tracks = Track.all
else
tracks = Track.joins(:conference)
tracks = tracks.where("conferences.guid" => params[:conference_id])
end
respond_with tracks
end
end