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

59 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
creator = music_session.creator
if creator && creator.id == current_user.id
@rsvp_requests = RsvpRequest.index(music_session, nil, params)
# scope the response to the current user
else
@rsvp_requests = RsvpRequest.index(music_session, current_user, params)
end
respond_with @rsvp_requests, responder: ApiResponder, :status => 200
end
end
def create
if params[:session_id].blank?
render :json => {:message => "Session ID is required."}, :status => 400
else
@rsvp = RsvpRequest.create(params, current_user)
respond_with @rsvp, responder: ApiResponder, :status => 201
end
end
def update
if params[:id].blank?
render :json => {:message => "RSVP request ID is required."}, :status => 400
else
RsvpRequest.update(params, current_user)
render :json => {:message => "Changes saved."}, :status => 204
end
end
def show
@rsvp_request = RsvpRequest.find(params[:id])
respond_with @rsvp_request, responder: ApiResponder, :status => 200
end
def destroy
@rsvp_request = RsvpRequest.cancel(params, current_user)
if !@rsvp_request.nil? && @rsvp_request.errors.any?
render :json => @rsvp_request.errors, :status => 400 and return
end
respond_with responder: ApiResponder, :status => 204
end
end