51 lines
1.3 KiB
Ruby
51 lines
1.3 KiB
Ruby
class ApiJoinRequestsController < ApiController
|
|
|
|
# have to be signed in currently to see this screen
|
|
before_filter :api_signed_in_user
|
|
|
|
respond_to :json
|
|
|
|
def initialize
|
|
@mq_router = MQRouter.new
|
|
@message_factory = MessageFactory.new
|
|
end
|
|
|
|
def index
|
|
@join_requests = JoinRequest.index(current_user)
|
|
end
|
|
|
|
def show
|
|
@join_request = JoinRequest.show(params[:id], current_user)
|
|
end
|
|
|
|
def create
|
|
music_session = MusicSession.find(params[:music_session])
|
|
text = params[:text]
|
|
sender = current_user
|
|
|
|
@join_request = JoinRequest.new
|
|
@join_request.music_session = music_session
|
|
@join_request.user = sender
|
|
@join_request.text = text
|
|
|
|
@join_request.save
|
|
|
|
if @join_request.errors.any?
|
|
response.status = :unprocessable_entity
|
|
respond_with @join_request
|
|
else
|
|
join_request_notification = @message_factory.join_request(music_session.id, @join_request.id, sender.name, text)
|
|
@mq_router.server_publish_to_session(music_session, join_request_notification)
|
|
respond_with @join_request, :responder => ApiResponder, :location => api_join_request_detail_url(@join_request)
|
|
end
|
|
end
|
|
|
|
def delete
|
|
@join_request = JoinRequest.show(params[:id], current_user)
|
|
@join_request.delete
|
|
|
|
respond_with @join_request, responder => ApiResponder
|
|
end
|
|
|
|
end
|