adding recording routes

This commit is contained in:
Mike Slemmer 2013-01-31 10:22:02 -08:00
parent 04fb3844ff
commit 9a330169b5
1 changed files with 32 additions and 9 deletions

View File

@ -1,25 +1,44 @@
class ApiRecordingssController < ApiController
before_filter :api_signed_in_user
before_filter :parse_filename
before_filter :look_up_recording, :only => [ :stop ]
before_filter :parse_filename, :only => [ :upload_next_part, :upload_sign, :upload_part_complete, :upload_complete ]
respond_to :json
def start
begin
Recording.start(params[:music_session_id], current_user, params[:name])
respond_with responder: ApiResponder, :status => 204
rescue
render :json => { :message => "recording could not be started" }, :status => 403
end
end
def stop
begin
@recording.stop
respond_with responder: ApiResponder, :status => 204
rescue
render :json => { :message => "recording could not be stopped" }, :status => 403
end
end
def upload_next_part
if @saved_track.next_part_to_upload == 0
@saved_track.upload_start
if @recorded_track.next_part_to_upload == 0
@recorded_track.upload_start
end
render :json => { :part => @saved_track.next_part_to_upload }, :status => 200
render :json => { :part => @recorded_track.next_part_to_upload }, :status => 200
end
def upload_sign
render :json => @saved_track.upload_sign(params[:filename], params[:content_md5]), :status => 200
render :json => @recorded_track.upload_sign(params[:filename], params[:content_md5]), :status => 200
end
def upload_part_complete
begin
@saved_track.upload_part_complete(params[:part])
@recorded_track.upload_part_complete(params[:part])
rescue
render :json => { :message => "part out of order" }, :status => 403
end
@ -27,18 +46,22 @@ class ApiRecordingssController < ApiController
end
def upload_complete
@saved_track.upload_complete
@recorded_track.upload_complete
respond_with responder: ApiResponder, :status => 204
end
private
def parse_filename
@saved_track = SavedTrack.find(SavedTrack.filename_to_saved_track_id(params[:filename]))
unless @saved_track
@recorded_track = RecordedTrack.find(RecordedTrack.filename_to_recorded_track_id(params[:filename]))
unless @recorded_track
render :json => { :message => RECORDING_NOT_FOUND }, :status => 404
end
end
def look_up_recording
@recording = Recording.find(params[id])
render :json => { :message => "recording not found" }, :status => 404 if @recording.nil?
end
end