]> git.openstreetmap.org Git - rails.git/blob - app/controllers/api/messages/mailboxes_controller.rb
Add frozen_string_literal comments to ruby files
[rails.git] / app / controllers / api / messages / mailboxes_controller.rb
1 # frozen_string_literal: true
2
3 module Api
4   module Messages
5     class MailboxesController < ApiController
6       before_action :authorize
7
8       authorize_resource :message
9
10       before_action :set_request_formats
11
12       private
13
14       def show_messages
15         @messages = @messages.where(:muted => false)
16         if params[:order].nil? || params[:order] == "newest"
17           @messages = @messages.where(:id => ..params[:from_id]) unless params[:from_id].nil?
18           @messages = @messages.order(:id => :desc)
19         elsif params[:order] == "oldest"
20           @messages = @messages.where(:id => params[:from_id]..) unless params[:from_id].nil?
21           @messages = @messages.order(:id => :asc)
22         else
23           raise OSM::APIBadUserInput, "Invalid order specified"
24         end
25
26         limit = params[:limit]
27         if !limit
28           limit = Settings.default_message_query_limit
29         elsif !limit.to_i.positive? || limit.to_i > Settings.max_message_query_limit
30           raise OSM::APIBadUserInput, "Messages limit must be between 1 and #{Settings.max_message_query_limit}"
31         else
32           limit = limit.to_i
33         end
34
35         @messages = @messages.limit(limit)
36
37         # Render the result
38         respond_to do |format|
39           format.xml
40           format.json
41         end
42       end
43     end
44   end
45 end