]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/4639'
authorTom Hughes <tom@compton.nu>
Mon, 1 Apr 2024 17:37:27 +0000 (18:37 +0100)
committerTom Hughes <tom@compton.nu>
Mon, 1 Apr 2024 17:37:27 +0000 (18:37 +0100)
1  2 
app/controllers/api/changesets_controller.rb
config/routes.rb

index 2bca8813a0f04ddee75c24b91e5f8ca4924f98d6,6eeb66e82ae7ea3c3070a4612567f635fb5283a8..616d3fdec9d5360232740ed876d17e4a30bd8bcb
@@@ -3,7 -3,7 +3,7 @@@
  module Api
    class ChangesetsController < ApiController
      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 :check_api_readable, :except => [:index, :create, :update, :upload, :download, :subscribe, :unsubscribe]
      before_action :setup_user_auth, :only => [:show]
      before_action :authorize, :only => [:create, :update, :upload, :close, :subscribe, :unsubscribe]
  
      # Helper methods for checking consistency
      include ConsistencyValidations
  
+     ##
+     # query changesets by bounding box, time, user or open/closed status.
+     def index
+       raise OSM::APIBadUserInput, "cannot use order=oldest with time" if params[:time] && params[:order] == "oldest"
+       # find any bounding box
+       bbox = BoundingBox.from_bbox_params(params) if params["bbox"]
+       # create the conditions that the user asked for. some or all of
+       # these may be nil.
+       changesets = Changeset.all
+       changesets = conditions_bbox(changesets, bbox)
+       changesets = conditions_user(changesets, params["user"], params["display_name"])
+       changesets = conditions_time(changesets, params["time"])
+       changesets = conditions_from_to(changesets, params["from"], params["to"])
+       changesets = conditions_open(changesets, params["open"])
+       changesets = conditions_closed(changesets, params["closed"])
+       changesets = conditions_ids(changesets, params["changesets"])
+       # sort the changesets
+       changesets = if params[:order] == "oldest"
+                      changesets.order(:created_at => :asc)
+                    else
+                      changesets.order(:created_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)
+       respond_to do |format|
+         format.xml
+         format.json
+       end
+     end
      ##
      # Return XML giving the basic info about the changeset. Does not
      # return anything about the nodes, ways and relations in the changeset.
@@@ -28,6 -66,7 +66,6 @@@
          @comments = @comments.unscope(:where => :visible) if params[:show_hidden_comments].presence && can?(:restore, ChangesetComment)
          @comments = @comments.includes(:author)
        end
 -      render "changeset"
  
        respond_to do |format|
          format.xml
        end
      end
  
-     ##
-     # query changesets by bounding box, time, user or open/closed status.
-     def query
-       raise OSM::APIBadUserInput, "cannot use order=oldest with time" if params[:time] && params[:order] == "oldest"
-       # find any bounding box
-       bbox = BoundingBox.from_bbox_params(params) if params["bbox"]
-       # create the conditions that the user asked for. some or all of
-       # these may be nil.
-       changesets = Changeset.all
-       changesets = conditions_bbox(changesets, bbox)
-       changesets = conditions_user(changesets, params["user"], params["display_name"])
-       changesets = conditions_time(changesets, params["time"])
-       changesets = conditions_from_to(changesets, params["from"], params["to"])
-       changesets = conditions_open(changesets, params["open"])
-       changesets = conditions_closed(changesets, params["closed"])
-       changesets = conditions_ids(changesets, params["changesets"])
-       # sort the changesets
-       changesets = if params[:order] == "oldest"
-                      changesets.order(:created_at => :asc)
-                    else
-                      changesets.order(:created_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)
-       render "changesets"
-       respond_to do |format|
-         format.xml
-         format.json
-       end
-     end
      ##
      # updates a changeset's tags. none of the changeset's attributes are
      # user-modifiable, so they will be ignored.
  
        check_changeset_consistency(@changeset, current_user)
        @changeset.update_from(new_changeset, current_user)
 -      render "changeset"
 +      render "show"
  
        respond_to do |format|
          format.xml
  
        # Return a copy of the updated changeset
        @changeset = changeset
 -      render "changeset"
 +      render "show"
  
        respond_to do |format|
          format.xml
  
        # Return a copy of the updated changeset
        @changeset = changeset
 -      render "changeset"
 +      render "show"
  
        respond_to do |format|
          format.xml
diff --combined config/routes.rb
index d006648323b8f866d57a05c76281536e5d2e36fc,d7fc4627c8995cdc75c2d00d2f05ad0b0d4ff6bb..d1e4c74ae5e06c0d00736051520e1031bdd96411
@@@ -25,7 -25,7 +25,7 @@@ OpenStreetMap::Application.routes.draw 
      post "changeset/:id/unsubscribe" => "changesets#unsubscribe", :as => :api_changeset_unsubscribe, :id => /\d+/
      put "changeset/:id" => "changesets#update", :id => /\d+/
      put "changeset/:id/close" => "changesets#close", :as => :changeset_close, :id => /\d+/
-     get "changesets" => "changesets#query"
+     get "changesets" => "changesets#index"
      post "changeset/:id/comment" => "changeset_comments#create", :as => :changeset_comment, :id => /\d+/
      post "changeset/comment/:id/hide" => "changeset_comments#destroy", :as => :changeset_comment_hide, :id => /\d+/
      post "changeset/comment/:id/unhide" => "changeset_comments#restore", :as => :changeset_comment_unhide, :id => /\d+/
    get "/user/:display_name/diary/rss" => "diary_entries#rss", :defaults => { :format => :rss }
    get "/diary/:language/rss" => "diary_entries#rss", :defaults => { :format => :rss }
    get "/diary/rss" => "diary_entries#rss", :defaults => { :format => :rss }
 -  get "/user/:display_name/diary/comments/:page" => "diary_entries#comments", :page => /[1-9][0-9]*/
 -  get "/user/:display_name/diary/comments/" => "diary_entries#comments", :as => :diary_comments
 +  get "/user/:display_name/diary/comments/:page", :page => /[1-9][0-9]*/, :to => redirect(:path => "/user/%{display_name}/diary/comments")
 +  get "/user/:display_name/diary/comments" => "diary_entries#comments", :as => :diary_comments
    get "/user/:display_name/diary" => "diary_entries#index"
    get "/diary/:language" => "diary_entries#index"
    scope "/user/:display_name" do