X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/e48cbc6a5f54a0e18dc581ccbac3b13284313125..2ff2cdf63d7f9874960c3efea01b4db2a80f9f68:/app/controllers/changeset_controller.rb?ds=sidebyside diff --git a/app/controllers/changeset_controller.rb b/app/controllers/changeset_controller.rb index 3e88eeec3..322ce79f7 100644 --- a/app/controllers/changeset_controller.rb +++ b/app/controllers/changeset_controller.rb @@ -54,6 +54,21 @@ class ChangesetController < ApplicationController render :nothing => true, :status => :not_found end end + + def close + begin + if not request.put? + render :nothing => true, :status => :method_not_allowed + return + end + changeset = Changeset.find(params[:id]) + changeset.open = false + changeset.save + render :nothing => true + rescue ActiveRecord::RecordNotFound + render :nothing => true, :status => :not_found + end + end def upload if not request.put? @@ -152,7 +167,7 @@ class ChangesetController < ApplicationController doc.find('//osm/delete/way').each do |nd| elem = XML::Node.new 'way' way = Way.find(nd['id']) - way.delete_with_relations_and_history(@user) + way.delete_with_history(@user) elem['old_id'] = elem['new_id'] = way.id.to_s elem['new_version'] = way.version.to_s root << elem @@ -169,5 +184,8 @@ class ChangesetController < ApplicationController end render :text => res.to_s, :content_type => "text/xml" + + rescue OSM::APIError => ex + render ex.render_opts end end