class SegmentController < ApplicationController
require 'xml/libxml'
- before_filter :authorize, :only => [:create, :update, :destroy]
+ session :off
+ before_filter :authorize, :only => [:create, :update, :delete]
+ before_filter :check_availability, :only => [:create, :update, :delete]
after_filter :compress_output
def create
segment.user_id = @user.id
segment.from_node = Node.find(segment.node_a.to_i)
segment.to_node = Node.find(segment.node_b.to_i)
+ segment.save_with_history!
- if segment.save_with_history
- render :text => segment.id.to_s, :content_type => "text/plain"
- else
- render :nothing => true, :status => :internal_server_error
- end
+ render :text => segment.id.to_s, :content_type => "text/plain"
end
else
render :nothing => true, :status => :bad_request
end
rescue ActiveRecord::RecordNotFound
render :nothing => true, :status => :not_found
- rescue
- render :nothing => true, :status => :internal_server_error
end
end
elsif !new_segment.preconditions_ok?
render :nothing => true, :status => :precondition_failed
else
- segment.timestamp = Time.now
segment.user_id = @user.id
segment.node_a = new_segment.node_a
segment.node_b = new_segment.node_b
segment.tags = new_segment.tags
segment.visible = new_segment.visible
+ segment.save_with_history!
- if segment.save_with_history
- render :nothing => true
- else
- render :nothing => true, :status => :internal_server_error
- end
+ render :nothing => true
end
else
render :nothing => true, :status => :bad_request
end
rescue ActiveRecord::RecordNotFound
render :nothing => true, :status => :not_found
- rescue
- render :nothing => true, :status => :internal_server_error
end
end
else
segment.user_id = @user.id
segment.visible = 0
+ segment.save_with_history!
- if segment.save_with_history
- render :nothing => true
- else
- render :nothing => true, :status => :internal_server_error
- end
+ render :nothing => true
end
else
render :nothing => true, :status => :gone
end
rescue ActiveRecord::RecordNotFound
render :nothing => true, :status => :not_found
- rescue
- render :nothing => true, :status => :internal_server_error
end
end