openstreetmap-website/app/controllers/api/messages/mailboxes_controller.rb
2024-12-22 07:03:41 +03:00

43 lines
1.3 KiB
Ruby

module Api
module Messages
class MailboxesController < ApiController
before_action :authorize
authorize_resource :message
before_action :set_request_formats
private
def show_messages
@messages = @messages.where(:muted => false)
if params[:order].nil? || params[:order] == "newest"
@messages = @messages.where(:id => ..params[:from_id]) unless params[:from_id].nil?
@messages = @messages.order(:id => :desc)
elsif params[:order] == "oldest"
@messages = @messages.where(:id => params[:from_id]..) unless params[:from_id].nil?
@messages = @messages.order(:id => :asc)
else
raise OSM::APIBadUserInput, "Invalid order specified"
end
limit = params[:limit]
if !limit
limit = Settings.default_message_query_limit
elsif !limit.to_i.positive? || limit.to_i > Settings.max_message_query_limit
raise OSM::APIBadUserInput, "Messages limit must be between 1 and #{Settings.max_message_query_limit}"
else
limit = limit.to_i
end
@messages = @messages.limit(limit)
# Render the result
respond_to do |format|
format.xml
format.json
end
end
end
end
end