X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/925d12cc8176414d0f9531832862a5825783d132..6b633e9d4a49df1f9308ef392203437cb7742558:/app/controllers/api/changesets_controller.rb diff --git a/app/controllers/api/changesets_controller.rb b/app/controllers/api/changesets_controller.rb index a08edff53..0a49a95f4 100644 --- a/app/controllers/api/changesets_controller.rb +++ b/app/controllers/api/changesets_controller.rb @@ -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. @@ -173,8 +170,15 @@ module Api changesets = conditions_closed(changesets, params["closed"]) changesets = conditions_ids(changesets, params["changesets"]) - # sort and limit the changesets - changesets = changesets.order("created_at DESC").limit(result_limit) + # sort the changesets + changesets = if params[:order] == "oldest" + changesets.order(:closed_at => :asc) + else + changesets.order(:closed_at => :desc) + end + + # limit the result + changesets = changesets.limit(result_limit) # preload users, tags and comments, and render result @changesets = changesets.preload(:user, :changeset_tags, :comments) @@ -391,13 +395,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