Move changeset comment feeds to resourceful routes

This commit is contained in:
Anton Khorev 2024-08-23 18:14:19 +03:00
parent 09d5ae68dd
commit 4a38ab5c80
3 changed files with 16 additions and 11 deletions

View 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)

View 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"

View 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