From 9d08d127724f77663430a03f2ea53a3668721f8a Mon Sep 17 00:00:00 2001 From: Eugen Rochko <eugen@zeonfederated.com> Date: Wed, 26 Oct 2022 22:21:39 +0200 Subject: [PATCH] Change `POST /api/v1/admin/domain_blocks` to be consistent with other APIs --- app/controllers/admin/domain_blocks_controller.rb | 8 ++------ .../api/v1/admin/domain_blocks_controller.rb | 11 ++++------- .../api/v1/admin/domain_blocks_controller_spec.rb | 7 +------ 3 files changed, 7 insertions(+), 19 deletions(-) diff --git a/app/controllers/admin/domain_blocks_controller.rb b/app/controllers/admin/domain_blocks_controller.rb index 16defc1ea87..8550bb01557 100644 --- a/app/controllers/admin/domain_blocks_controller.rb +++ b/app/controllers/admin/domain_blocks_controller.rb @@ -43,12 +43,8 @@ module Admin def update authorize :domain_block, :update? - @domain_block.update(update_params) - - severity_changed = @domain_block.severity_changed? - - if @domain_block.save - DomainBlockWorker.perform_async(@domain_block.id, severity_changed) + if @domain_block.update(update_params) + DomainBlockWorker.perform_async(@domain_block.id, @domain_block.severity_previously_changed?) log_action :update, @domain_block redirect_to admin_instances_path(limited: '1'), notice: I18n.t('admin.domain_blocks.created_msg') else diff --git a/app/controllers/api/v1/admin/domain_blocks_controller.rb b/app/controllers/api/v1/admin/domain_blocks_controller.rb index de8fd9d089e..f8de482e4f9 100644 --- a/app/controllers/api/v1/admin/domain_blocks_controller.rb +++ b/app/controllers/api/v1/admin/domain_blocks_controller.rb @@ -19,12 +19,10 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController def create authorize :domain_block, :create? - existing_domain_block = resource_params[:domain].present? ? DomainBlock.rule_for(resource_params[:domain]) : nil - return render json: existing_domain_block, serializer: REST::Admin::ExistingDomainBlockErrorSerializer, status: 422 if existing_domain_block.present? - @domain_block = DomainBlock.create!(resource_params) DomainBlockWorker.perform_async(@domain_block.id) log_action :create, @domain_block + render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer end @@ -41,11 +39,10 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController def update authorize @domain_block, :update? - @domain_block.update(domain_block_params) - severity_changed = @domain_block.severity_changed? - @domain_block.save! - DomainBlockWorker.perform_async(@domain_block.id, severity_changed) + @domain_block.update!(domain_block_params) + DomainBlockWorker.perform_async(@domain_block.id, @domain_block.severity_previously_changed?) log_action :update, @domain_block + render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer end diff --git a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb index f12285b2a62..4fddaa4f1ad 100644 --- a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb +++ b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb @@ -117,16 +117,11 @@ RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do end context 'when a stricter domain block already exists' do - let(:existing_block_domain) { 'bar.com' } + let(:existing_block_domain) { 'foo.bar.com' } it 'returns http unprocessable entity' do expect(response).to have_http_status(422) end - - it 'renders existing domain block in error' do - json = body_as_json - expect(json[:existing_domain_block][:domain]).to eq existing_block_domain - end end end end -- GitLab