]> git.openstreetmap.org Git - rails.git/commitdiff
Move changeset comment feeds to resourceful routes
authorAnton Khorev <tony29@yandex.ru>
Fri, 23 Aug 2024 15:14:19 +0000 (18:14 +0300)
committerAnton Khorev <tony29@yandex.ru>
Fri, 23 Aug 2024 15:14:19 +0000 (18:14 +0300)
app/controllers/feeds/changeset_comments_controller.rb
config/routes.rb
test/controllers/feeds/changeset_comments_controller_test.rb

index e24b353b89b1bcfb122b18c63946558619352978..c6b35526016e42e3a4e3c0ed32c6192032552659 100644 (file)
@@ -11,12 +11,12 @@ module Feeds
     ##
     # Get a feed of recent changeset comments
     def index
-      if params[:id]
+      if params[:changeset_id]
         # Extract the arguments
-        id = params[:id].to_i
+        changeset_id = params[:changeset_id].to_i
 
         # Find the changeset
-        changeset = Changeset.find(id)
+        changeset = Changeset.find(changeset_id)
 
         # Return comments for this changeset only
         @comments = changeset.comments.includes(:author, :changeset).reverse_order.limit(comments_limit)
index e84b49b4b005b50ab6c952ca685d759d9cec9116..119253037b93f95c4774f8bec7e2b82f30fd2dbc 100644 (file)
@@ -125,8 +125,11 @@ OpenStreetMap::Application.routes.draw do
   resources :old_relations, :path => "/relation/:id/history", :id => /\d+/, :version => /\d+/, :param => :version, :only => :show
   resources :changesets, :path => "changeset", :id => /\d+/, :only => :show do
     match :subscribe, :unsubscribe, :on => :member, :via => [:get, :post]
+
+    namespace :feeds, :path => "" do
+      resources :changeset_comments, :path => "comments/feed", :only => :index, :defaults => { :format => "rss" }
+    end
   end
-  get "/changeset/:id/comments/feed" => "feeds/changeset_comments#index", :as => :changeset_comments_feed, :id => /\d*/, :defaults => { :format => "rss" }
   resources :notes, :path => "note", :id => /\d+/, :only => [:show, :new]
 
   get "/user/:display_name/history" => "changesets#index"
@@ -164,7 +167,9 @@ OpenStreetMap::Application.routes.draw do
   get "/communities" => "site#communities"
   get "/history" => "changesets#index"
   get "/history/feed" => "changesets#feed", :defaults => { :format => :atom }
-  get "/history/comments/feed" => "feeds/changeset_comments#index", :as => :changesets_comments_feed, :defaults => { :format => "rss" }
+  namespace :feeds, :path => "" do
+    resources :changeset_comments, :path => "/history/comments/feed", :only => :index, :defaults => { :format => "rss" }
+  end
   get "/export" => "site#export"
   get "/login" => "sessions#new"
   post "/login" => "sessions#create"
index aff04778bc910b2569b643a821ee5b5616a164f3..a4149b0d55d6622c3f3662aa2cc345f86c4dbc13 100644 (file)
@@ -7,7 +7,7 @@ module Feeds
     def test_routes
       assert_routing(
         { :path => "/changeset/1/comments/feed", :method => :get },
-        { :controller => "feeds/changeset_comments", :action => "index", :id => "1", :format => "rss" }
+        { :controller => "feeds/changeset_comments", :action => "index", :changeset_id => "1", :format => "rss" }
       )
       assert_routing(
         { :path => "/history/comments/feed", :method => :get },
@@ -21,7 +21,7 @@ module Feeds
       changeset = create(:changeset, :closed)
       create_list(:changeset_comment, 3, :changeset => changeset)
 
-      get changesets_comments_feed_path(:format => "rss")
+      get feeds_changeset_comments_path(:format => "rss")
       assert_response :success
       assert_equal "application/rss+xml", @response.media_type
       assert_select "rss", :count => 1 do
@@ -30,7 +30,7 @@ module Feeds
         end
       end
 
-      get changesets_comments_feed_path(:format => "rss", :limit => 2)
+      get feeds_changeset_comments_path(:format => "rss", :limit => 2)
       assert_response :success
       assert_equal "application/rss+xml", @response.media_type
       assert_select "rss", :count => 1 do
@@ -39,7 +39,7 @@ module Feeds
         end
       end
 
-      get changeset_comments_feed_path(:id => changeset.id, :format => "rss")
+      get changeset_feeds_changeset_comments_path(changeset, :format => "rss")
       assert_response :success
       assert_equal "application/rss+xml", @response.media_type
       last_comment_id = -1
@@ -62,10 +62,10 @@ module Feeds
     ##
     # test comments feed
     def test_feed_bad_limit
-      get changesets_comments_feed_path(:format => "rss", :limit => 0)
+      get feeds_changeset_comments_path(:format => "rss", :limit => 0)
       assert_response :bad_request
 
-      get changesets_comments_feed_path(:format => "rss", :limit => 100001)
+      get feeds_changeset_comments_path(:format => "rss", :limit => 100001)
       assert_response :bad_request
     end
   end