diff options
Diffstat (limited to 'app/controllers/whats_new_controller.rb')
-rw-r--r-- | app/controllers/whats_new_controller.rb | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/app/controllers/whats_new_controller.rb b/app/controllers/whats_new_controller.rb index 7156faa4e49..384c984089a 100644 --- a/app/controllers/whats_new_controller.rb +++ b/app/controllers/whats_new_controller.rb @@ -5,14 +5,14 @@ class WhatsNewController < ApplicationController skip_before_action :authenticate_user! - before_action :check_feature_flag + before_action :check_feature_flag, :check_valid_page_param, :set_pagination_headers feature_category :navigation def index respond_to do |format| format.js do - render json: whats_new_most_recent_release_items + render json: whats_new_release_items(page: current_page) end end end @@ -22,4 +22,23 @@ class WhatsNewController < ApplicationController def check_feature_flag render_404 unless Feature.enabled?(:whats_new_drawer, current_user) end + + def check_valid_page_param + render_404 if current_page < 1 + end + + def set_pagination_headers + response.set_header('X-Next-Page', next_page) + end + + def current_page + params[:page]&.to_i || 1 + end + + def next_page + next_page = current_page + 1 + next_index = next_page - 1 + + next_page if whats_new_file_paths[next_index] + end end |