From: Anton Khorev Date: Fri, 23 Aug 2024 15:14:19 +0000 (+0300) Subject: Move changeset comment feeds to resourceful routes X-Git-Tag: live~258^2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/4a38ab5c80d325457a1928d049847d82532f620d Move changeset comment feeds to resourceful routes --- diff --git a/app/controllers/feeds/changeset_comments_controller.rb b/app/controllers/feeds/changeset_comments_controller.rb index e24b353b8..c6b355260 100644 --- a/app/controllers/feeds/changeset_comments_controller.rb +++ b/app/controllers/feeds/changeset_comments_controller.rb @@ -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) diff --git a/config/routes.rb b/config/routes.rb index e84b49b4b..119253037 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -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" diff --git a/test/controllers/feeds/changeset_comments_controller_test.rb b/test/controllers/feeds/changeset_comments_controller_test.rb index aff04778b..a4149b0d5 100644 --- a/test/controllers/feeds/changeset_comments_controller_test.rb +++ b/test/controllers/feeds/changeset_comments_controller_test.rb @@ -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