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)
+
+ # preload users, tags and comments
+ changesets = changesets.preload(:user, :changeset_tags, :comments)
+
# create the results document
results = OSM::API.new.get_xml_doc
# Find the changeset and check it is valid
changeset = Changeset.find(id)
- raise OSM::APIChangesetNotYetClosedError, changeset if changeset.is_open?
raise OSM::APIChangesetAlreadySubscribedError, changeset if changeset.subscribers.exists?(current_user.id)
# Add the subscriber
# Find the changeset and check it is valid
changeset = Changeset.find(id)
- raise OSM::APIChangesetNotYetClosedError, changeset if changeset.is_open?
raise OSM::APIChangesetNotSubscribedError, changeset unless changeset.subscribers.exists?(current_user.id)
# Remove the subscriber
times = time.split(/,/)
raise OSM::APIBadUserInput, "bad time range" if times.size != 2
- from, to = times.collect { |t| DateTime.parse(t) }
+ from, to = times.collect { |t| Time.parse(t) }
return changesets.where("closed_at >= ? and created_at <= ?", from, to)
else
# if there is no comma, assume its a lower limit on time
- return changesets.where("closed_at >= ?", DateTime.parse(time))
+ return changesets.where("closed_at >= ?", Time.parse(time))
end
- # stupid DateTime seems to throw both of these for bad parsing, so
+ # stupid Time seems to throw both of these for bad parsing, so
# we have to catch both and ensure the correct code path is taken.
rescue ArgumentError => ex
raise OSM::APIBadUserInput, ex.message.to_s