Add rescue_from(ActionController::UnknownFormat) in Application Controller

This commit is contained in:
Pawel Chojnacki 2017-06-20 15:53:05 +02:00
parent 57ff963129
commit 15b7b9ec41
5 changed files with 49 additions and 11 deletions

View File

@ -40,6 +40,10 @@ class ApplicationController < ActionController::Base
render_404
end
rescue_from(ActionController::UnknownFormat) do
render_404
end
rescue_from Gitlab::Access::AccessDeniedError do |exception|
render_403
end

View File

@ -25,12 +25,16 @@ class Projects::DeploymentsController < Projects::ApplicationController
def additional_metrics
return render_404 unless deployment.has_additional_metrics?
metrics = deployment.additional_metrics
respond_to do |format|
format.json do
metrics = deployment.additional_metrics
if metrics.any?
render json: metrics
else
head :no_content
if metrics.any?
render json: metrics
else
head :no_content
end
end
end
end

View File

@ -132,9 +132,13 @@ class Projects::EnvironmentsController < Projects::ApplicationController
end
def additional_metrics
additional_metrics = environment.additional_metrics || {}
respond_to do |format|
format.json do
additional_metrics = environment.additional_metrics || {}
render json: additional_metrics, status: additional_metrics.any? ? :ok : :no_content
render json: additional_metrics, status: additional_metrics.any? ? :ok : :no_content
end
end
end
private

View File

@ -18,10 +18,6 @@ class Projects::PrometheusController < Projects::ApplicationController
private
rescue_from(ActionController::UnknownFormat) do
render_404
end
def require_prometheus_metrics!
render_404 unless project.prometheus_service.present?
end

View File

@ -99,6 +99,36 @@ describe ApplicationController do
end
end
describe 'response format' do
controller(described_class) do
def index
respond_to do |format|
format.json do
head :ok
end
end
end
end
context 'when format is handled' do
let(:requested_format) { :json }
it 'returns 200 response' do
get :index, private_token: user.private_token, format: requested_format
expect(response).to have_http_status 200
end
end
context 'when format is not handled' do
it 'returns 404 response' do
get :index, private_token: user.private_token
expect(response).to have_http_status 404
end
end
end
describe '#authenticate_user_from_rss_token' do
describe "authenticating a user from an RSS token" do
controller(described_class) do