Merge remote-tracking branch 'upstream/pull/4142'
This commit is contained in:
commit
d3f532ed78
4 changed files with 15 additions and 8 deletions
|
@ -19,9 +19,6 @@ module Api
|
||||||
# Helper methods for checking consistency
|
# Helper methods for checking consistency
|
||||||
include ConsistencyValidations
|
include ConsistencyValidations
|
||||||
|
|
||||||
DEFAULT_QUERY_LIMIT = 100
|
|
||||||
MAX_QUERY_LIMIT = 100
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Return XML giving the basic info about the changeset. Does not
|
# Return XML giving the basic info about the changeset. Does not
|
||||||
# return anything about the nodes, ways and relations in the changeset.
|
# return anything about the nodes, ways and relations in the changeset.
|
||||||
|
@ -391,13 +388,13 @@ module Api
|
||||||
# Get the maximum number of results to return
|
# Get the maximum number of results to return
|
||||||
def result_limit
|
def result_limit
|
||||||
if params[:limit]
|
if params[:limit]
|
||||||
if params[:limit].to_i.positive? && params[:limit].to_i <= MAX_QUERY_LIMIT
|
if params[:limit].to_i.positive? && params[:limit].to_i <= Settings.max_changeset_query_limit
|
||||||
params[:limit].to_i
|
params[:limit].to_i
|
||||||
else
|
else
|
||||||
raise OSM::APIBadUserInput, "Changeset limit must be between 1 and #{MAX_QUERY_LIMIT}"
|
raise OSM::APIBadUserInput, "Changeset limit must be between 1 and #{Settings.max_changeset_query_limit}"
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
DEFAULT_QUERY_LIMIT
|
Settings.default_changeset_query_limit
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,7 +7,9 @@ xml.osm(OSM::API.new.xml_root_attributes) do |osm|
|
||||||
api.tracepoints(:per_page => Settings.tracepoints_per_page)
|
api.tracepoints(:per_page => Settings.tracepoints_per_page)
|
||||||
api.waynodes(:maximum => Settings.max_number_of_way_nodes)
|
api.waynodes(:maximum => Settings.max_number_of_way_nodes)
|
||||||
api.relationmembers(:maximum => Settings.max_number_of_relation_members)
|
api.relationmembers(:maximum => Settings.max_number_of_relation_members)
|
||||||
api.changesets(:maximum_elements => Changeset::MAX_ELEMENTS)
|
api.changesets(:maximum_elements => Changeset::MAX_ELEMENTS,
|
||||||
|
:default_query_limit => Settings.default_changeset_query_limit,
|
||||||
|
:maximum_query_limit => Settings.max_changeset_query_limit)
|
||||||
api.timeout(:seconds => Settings.api_timeout)
|
api.timeout(:seconds => Settings.api_timeout)
|
||||||
api.status(:database => @database_status,
|
api.status(:database => @database_status,
|
||||||
:api => @api_status,
|
:api => @api_status,
|
||||||
|
|
|
@ -27,6 +27,10 @@ status: "online"
|
||||||
max_request_area: 0.25
|
max_request_area: 0.25
|
||||||
# Number of GPS trace/trackpoints returned per-page
|
# Number of GPS trace/trackpoints returned per-page
|
||||||
tracepoints_per_page: 5000
|
tracepoints_per_page: 5000
|
||||||
|
# Default limit on the number of changesets returned by the changeset query api method
|
||||||
|
default_changeset_query_limit: 100
|
||||||
|
# Maximum limit on the number of changesets returned by the changeset query api method
|
||||||
|
max_changeset_query_limit: 100
|
||||||
# Maximum number of nodes that will be returned by the api in a map request
|
# Maximum number of nodes that will be returned by the api in a map request
|
||||||
max_number_of_nodes: 50000
|
max_number_of_nodes: 50000
|
||||||
# Maximum number of nodes that can be in a way (checked on save)
|
# Maximum number of nodes that can be in a way (checked on save)
|
||||||
|
|
|
@ -1959,7 +1959,11 @@ module Api
|
||||||
get changesets_path(:limit => "0")
|
get changesets_path(:limit => "0")
|
||||||
assert_response :bad_request
|
assert_response :bad_request
|
||||||
|
|
||||||
get changesets_path(:limit => "101")
|
get changesets_path(:limit => Settings.max_changeset_query_limit)
|
||||||
|
assert_response :success
|
||||||
|
assert_changesets [changeset5, changeset4, changeset3, changeset2, changeset1]
|
||||||
|
|
||||||
|
get changesets_path(:limit => Settings.max_changeset_query_limit + 1)
|
||||||
assert_response :bad_request
|
assert_response :bad_request
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue