jam-cloud/web/app/controllers/api_rsvp_requests_controlle...

53 lines
1.6 KiB
Ruby

class ApiRsvpRequestsController < ApiController
before_filter :auth_user
respond_to :json
def index
if params[:session_id].blank?
render :json => {:message => "Session ID is required"}, :status => 400
else
music_session = MusicSession.find(params[:session_id])
# retrieve all requests for this session
if music_session.creator.id == current_user.id
@rsvp_requests = RsvpRequest.index(music_session)
# scope the response to the current user
else
@rsvp_requests = RsvpRequest.index(music_session, current_user)
end
respond_with @rsvp_requests, responder: ApiResponder, :status => 200
end
end
def create
if params[:id].blank? || params[:session_id].blank?
render :json => {:message => "Session ID is required."}, :status => 400
else
music_session = MusicSession.find(params[:session_id])
@rsvp = RsvpRequest.create(params, current_user)
respond_with @rsvp, responder: ApiResponder, :status => 201
end
end
def show
@rsvp_request = RsvpRequest.find(params[:id])
respond_with @rsvp_request, responder: ApiResponder, :status => 200
end
def destroy
if params[:id].blank? || params[:session_id].blank?
render :json => {:message => "RSVP request ID and session ID are required."}, :status => 400
else
music_session = MusicSession.find(params[:session_id])
rsvp_request = RsvpRequest.find(params[:id])
RsvpRequest.cancel(rsvp_request, music_session, current_user, params[:message])
respond_with responder: ApiResponder, :status => 204
end
end
end