X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/46bc4650d2123a2233e62f0e101983552178d12a..6a77bbe544b9866844473230b0c2406062ab9b5b:/app/controllers/api/amf_controller.rb diff --git a/app/controllers/api/amf_controller.rb b/app/controllers/api/amf_controller.rb index 2a878d248..e5648989b 100644 --- a/app/controllers/api/amf_controller.rb +++ b/app/controllers/api/amf_controller.rb @@ -36,10 +36,9 @@ # * version conflict when POIs and ways are reverted module Api - class AmfController < ApplicationController + class AmfController < ApiController include Potlatch - skip_before_action :verify_authenticity_token before_action :check_api_writable # AMF Controller implements its own authentication and authorization checks @@ -93,14 +92,14 @@ module Api result = putway(renumberednodes, *args) result[4] = renumberednodes.reject { |k, _v| orn.key?(k) } renumberedways[result[2]] = result[3] if result[0].zero? && result[2] != result[3] - when "putrelation" then + when "putrelation" result = putrelation(renumberednodes, renumberedways, *args) - when "deleteway" then + when "deleteway" result = deleteway(*args) when "putpoi" then result = putpoi(*args) renumberednodes[result[2]] = result[3] if result[0].zero? && result[2] != result[3] - when "startchangeset" then + when "startchangeset" result = startchangeset(*args) end @@ -115,23 +114,23 @@ module Api def amf_handle_error(call, rootobj, rootid) yield - rescue OSM::APIAlreadyDeletedError => ex - [-4, ex.object, ex.object_id] - rescue OSM::APIVersionMismatchError => ex - [-3, [rootobj, rootid], [ex.type.downcase, ex.id, ex.latest]] - rescue OSM::APIUserChangesetMismatchError => ex - [-2, ex.to_s] - rescue OSM::APIBadBoundingBox => ex - [-2, "Sorry - I can't get the map for that area. The server said: #{ex}"] - rescue OSM::APIError => ex - [-1, ex.to_s] - rescue StandardError => ex - [-2, "An unusual error happened (in #{call}). The server said: #{ex}"] + rescue OSM::APIAlreadyDeletedError => e + [-4, e.object, e.object_id] + rescue OSM::APIVersionMismatchError => e + [-3, [rootobj, rootid], [e.type.downcase, e.id, e.latest]] + rescue OSM::APIUserChangesetMismatchError => e + [-2, e.to_s] + rescue OSM::APIBadBoundingBox => e + [-2, "Sorry - I can't get the map for that area. The server said: #{e}"] + rescue OSM::APIError => e + [-1, e.to_s] + rescue StandardError => e + [-2, "An unusual error happened (in #{call}). The server said: #{e}"] end def amf_handle_error_with_timeout(call, rootobj, rootid) amf_handle_error(call, rootobj, rootid) do - OSM::Timer.timeout(API_TIMEOUT, OSM::APITimeoutError) do + OSM::Timer.timeout(Settings.api_timeout, OSM::APITimeoutError) do yield end end @@ -570,7 +569,7 @@ module Api new_relation.members = typedmembers new_relation.tags = tags new_relation.visible = visible - new_relation.changeset_id = changeset_id + new_relation.changeset_id = changeset_id.to_i new_relation.version = version if relid <= 0 @@ -654,7 +653,7 @@ module Api id = renumberednodes[id] if renumberednodes[id] node = Node.new - node.changeset_id = changeset_id + node.changeset_id = changeset_id.to_i node.lat = lat node.lon = lon node.tags = a[4] @@ -688,7 +687,7 @@ module Api new_way = Way.new new_way.tags = attributes new_way.nds = pointlist - new_way.changeset_id = changeset_id + new_way.changeset_id = changeset_id.to_i new_way.version = wayversion if originalway <= 0 new_way.create_with_history(user) @@ -706,7 +705,7 @@ module Api deletednodes.each do |id, v| node = Node.find(id.to_i) new_node = Node.new - new_node.changeset_id = changeset_id + new_node.changeset_id = changeset_id.to_i new_node.version = v.to_i new_node.id = id.to_i begin @@ -759,7 +758,7 @@ module Api # We always need a new node, based on the data that has been sent to us new_node = Node.new - new_node.changeset_id = changeset_id + new_node.changeset_id = changeset_id.to_i new_node.version = version new_node.lat = lat new_node.lon = lon @@ -835,7 +834,7 @@ module Api old_way = Way.find(way_id) delete_way = Way.new delete_way.version = way_version - delete_way.changeset_id = changeset_id + delete_way.changeset_id = changeset_id.to_i delete_way.id = way_id old_way.delete_with_history!(delete_way, user) @@ -844,7 +843,7 @@ module Api deletednodes.each do |id, v| node = Node.find(id.to_i) new_node = Node.new - new_node.changeset_id = changeset_id + new_node.changeset_id = changeset_id.to_i new_node.version = v.to_i new_node.id = id.to_i begin