class WayController < ApplicationController
require 'xml/libxml'
- before_filter :authorize, :only => [:create, :update, :destroy]
+ session :off
+ before_filter :authorize, :only => [:create, :update, :delete]
+ before_filter :check_write_availability, :only => [:create, :update, :delete]
+ before_filter :check_read_availability, :except => [:create, :update, :delete]
after_filter :compress_output
def create
render :nothing => true, :status => :precondition_failed
else
way.user_id = @user.id
+ way.save_with_history!
- if way.save_with_history
- render :text => way.id.to_s, :content_type => "text/plain"
- else
- render :nothing => true, :status => :internal_server_error
- end
+ render :text => way.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
way.user_id = @user.id
way.tags = new_way.tags
way.segs = new_way.segs
- way.timestamp = new_way.timestamp
way.visible = true
+ way.save_with_history!
- if way.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
if way.visible
way.user_id = @user.id
+ way.tags = []
+ way.segs = []
way.visible = false
+ way.save_with_history!
- if way.save_with_history
- render :nothing => true
- else
- render :nothing => true, :status => :internal_server_error
- end
+ render :nothing => true
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
end
rescue ActiveRecord::RecordNotFound
render :nothing => true, :status => :not_found
- rescue
- render :nothing => true, :status => :internal_server_error
end
end
def ways
- ids = params['ways'].split(',').collect { |w| w.to_i }
+ begin
+ ids = params['ways'].split(',').collect { |w| w.to_i }
+ rescue
+ ids = []
+ end
if ids.length > 0
doc = OSM::API.new.get_xml_doc