class TrackController < ApplicationController before_filter :authorize def update_length unless params[:track_id].nil? track = Track.find(params[:track_id]) unless track.nil? or params[:length].nil? if track.length == nil or track.length.to_i == 0 and params[:length].to_i > 0 track.length = params[:length].to_i track.save return render :json => { :result => :success } end end end render :json => { :result => :failed } end def report_unavailable track = Track.find(params[:id]) unless track.nil? or track.available track.available = true track.save return render :json => { :status => :success } end render :json => { :status => :failed } end def report_bad track = Track.find(params[:id]) unless track.nil? # Saving track file vote(params[:track_id], params[:owner_id], params[:audio_id], -1) return render :json => { :status => :success } end render :json => { :status => :failed } end private def vote track_id, owner_id, audio_id, delta = 0 track_file = TrackFile.find_or_create_by_track_id_and_owner_id_and_audio_id( track_id, owner_id, audio_id ){ |tf| tf.rating = 0 } track_file.rating += delta track_file.save end end