]> git.openstreetmap.org Git - rails.git/blob - app/controllers/changeset_comments/feeds_controller.rb
Merge remote-tracking branch 'upstream/pull/4359'
[rails.git] / app / controllers / changeset_comments / feeds_controller.rb
1 module ChangesetComments
2   class FeedsController < ApplicationController
3     include QueryMethods
4
5     before_action :authorize_web
6     before_action :set_locale
7
8     authorize_resource :changeset_comment
9
10     before_action -> { check_database_readable(:need_api => true) }
11     around_action :web_timeout
12
13     ##
14     # Get a feed of recent changeset comments
15     def show
16       if params[:changeset_id]
17         # Extract the arguments
18         changeset_id = params[:changeset_id].to_i
19
20         # Find the changeset
21         changeset = Changeset.find(changeset_id)
22
23         # Return comments for this changeset only
24         @comments = changeset.comments.includes(:author, :changeset).reverse_order
25         @comments = query_limit(@comments)
26       else
27         # Return comments
28         @comments = ChangesetComment.includes(:author, :changeset).where(:visible => true).order("created_at DESC")
29         @comments = query_limit(@comments)
30         @comments = @comments.preload(:changeset)
31       end
32
33       # Render the result
34       respond_to do |format|
35         format.rss
36       end
37     rescue OSM::APIBadUserInput
38       head :bad_request
39     end
40   end
41 end