changesets = conditions_closed(changesets, params["closed"])
changesets = conditions_ids(changesets, params["changesets"])
- # sort and limit the changesets
- changesets = changesets.order("created_at DESC").limit(100)
+ # 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)
changesets.where(:id => ids)
end
end
+
+ ##
+ # Get the maximum number of results to return
+ def result_limit
+ if params[: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 #{Settings.max_changeset_query_limit}"
+ end
+ else
+ Settings.default_changeset_query_limit
+ end
+ end
end
end