]> git.openstreetmap.org Git - rails.git/commitdiff
Rename api changesets index action
authorAnton Khorev <tony29@yandex.ru>
Sat, 30 Mar 2024 05:26:58 +0000 (08:26 +0300)
committerAnton Khorev <tony29@yandex.ru>
Sat, 30 Mar 2024 05:26:58 +0000 (08:26 +0300)
app/abilities/api_ability.rb
app/controllers/api/changesets_controller.rb
config/routes.rb
test/controllers/api/changesets_controller_test.rb

index e20b849d11d96991f494be946776cd9ede66987b..96ed9b080fa3b79f4692aab8c52c21aa1c4efe5d 100644 (file)
@@ -10,7 +10,7 @@ class ApiAbility
     can :show, :version
 
     if Settings.status != "database_offline"
-      can [:show, :download, :query], Changeset
+      can [:index, :show, :download], Changeset
       can [:index, :create, :feed, :show, :search], Note
       can :index, Tracepoint
       can [:index, :show], User
index 78a5b48e3ff6025e0a9f4f81576ea14e4e6487b1..50cb7878232ee851fd671e51f8f3011ddcdb6c92 100644 (file)
@@ -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]
 
@@ -18,6 +18,45 @@ module Api
     # 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)
+      render "changesets"
+
+      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.
@@ -145,45 +184,6 @@ module Api
       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.
index 1633e2b26beda6d428d3ccc708e5b0f4f5ef2d64..d7fc4627c8995cdc75c2d00d2f05ad0b0d4ff6bb 100644 (file)
@@ -25,7 +25,7 @@ OpenStreetMap::Application.routes.draw do
     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+/
index e5c6c0481d96701cd6a6a0a074b5cdadf43bd653..d2e8db7c415bb9f33f5d2fdc1776701b28694aa5 100644 (file)
@@ -51,11 +51,11 @@ module Api
       )
       assert_routing(
         { :path => "/api/0.6/changesets", :method => :get },
-        { :controller => "api/changesets", :action => "query" }
+        { :controller => "api/changesets", :action => "index" }
       )
       assert_routing(
         { :path => "/api/0.6/changesets.json", :method => :get },
-        { :controller => "api/changesets", :action => "query", :format => "json" }
+        { :controller => "api/changesets", :action => "index", :format => "json" }
       )
     end