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
|
||||
include ConsistencyValidations
|
||||
|
||||
DEFAULT_QUERY_LIMIT = 100
|
||||
MAX_QUERY_LIMIT = 100
|
||||
|
||||
##
|
||||
# Return XML giving the basic info about the changeset. Does not
|
||||
# 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
|
||||
def result_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
|
||||
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
|
||||
else
|
||||
DEFAULT_QUERY_LIMIT
|
||||
Settings.default_changeset_query_limit
|
||||
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.waynodes(:maximum => Settings.max_number_of_way_nodes)
|
||||
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.status(:database => @database_status,
|
||||
:api => @api_status,
|
||||
|
|
|
@ -27,6 +27,10 @@ status: "online"
|
|||
max_request_area: 0.25
|
||||
# Number of GPS trace/trackpoints returned per-page
|
||||
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
|
||||
max_number_of_nodes: 50000
|
||||
# Maximum number of nodes that can be in a way (checked on save)
|
||||
|
|
|
@ -1959,7 +1959,11 @@ module Api
|
|||
get changesets_path(:limit => "0")
|
||||
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
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue