class ChangesetsController < ApiController
require "xml/libxml"
+ before_action :check_api_writable, :only => [:create, :update, :upload, :subscribe, :unsubscribe]
+ before_action :check_api_readable, :except => [:create, :update, :upload, :download, :query, :subscribe, :unsubscribe]
before_action :authorize, :only => [:create, :update, :upload, :close, :subscribe, :unsubscribe]
authorize_resource
before_action :require_public_data, :only => [:create, :update, :upload, :close, :subscribe, :unsubscribe]
- before_action :check_api_writable, :only => [:create, :update, :upload, :subscribe, :unsubscribe]
- before_action :check_api_readable, :except => [:create, :update, :upload, :download, :query, :subscribe, :unsubscribe]
- before_action :set_request_formats, :only => [:download]
+ before_action :set_request_formats, :except => [:create, :close, :upload]
around_action :api_call_handle_error
around_action :api_call_timeout, :except => [:upload]
@changeset = Changeset.find(params[:id])
@include_discussion = params[:include_discussion].presence
render "changeset"
+
+ respond_to do |format|
+ format.xml
+ format.json
+ end
end
##
# preload users, tags and comments, and render result
@changesets = changesets.preload(:user, :changeset_tags, :comments)
render "changesets"
+
+ respond_to do |format|
+ format.xml
+ format.json
+ end
end
##
check_changeset_consistency(@changeset, current_user)
@changeset.update_from(new_changeset, current_user)
render "changeset"
+
+ respond_to do |format|
+ format.xml
+ format.json
+ end
end
##
# Return a copy of the updated changeset
@changeset = changeset
render "changeset"
+
+ respond_to do |format|
+ format.xml
+ format.json
+ end
end
##
# Return a copy of the updated changeset
@changeset = changeset
render "changeset"
+
+ respond_to do |format|
+ format.xml
+ format.json
+ end
end
private
times = time.split(",")
raise OSM::APIBadUserInput, "bad time range" if times.size != 2
- from, to = times.collect { |t| Time.parse(t) }
+ from, to = times.collect { |t| Time.parse(t).utc }
changesets.where("closed_at >= ? and created_at <= ?", from, to)
else
# if there is no comma, assume its a lower limit on time
- changesets.where("closed_at >= ?", Time.parse(time))
+ changesets.where("closed_at >= ?", Time.parse(time).utc)
end
# 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.
changesets
else
changesets.where("closed_at >= ? and num_changes <= ?",
- Time.now.getutc, Changeset::MAX_ELEMENTS)
+ Time.now.utc, Changeset::MAX_ELEMENTS)
end
end
changesets
else
changesets.where("closed_at < ? or num_changes > ?",
- Time.now.getutc, Changeset::MAX_ELEMENTS)
+ Time.now.utc, Changeset::MAX_ELEMENTS)
end
end