Commit 9d08d127 authored by Eugen Rochko's avatar Eugen Rochko
Browse files

Change `POST /api/v1/admin/domain_blocks` to be consistent with other APIs

parent 1d261c7c
Showing with 7 additions and 19 deletions
+7 -19
...@@ -43,12 +43,8 @@ module Admin ...@@ -43,12 +43,8 @@ module Admin
def update def update
authorize :domain_block, :update? authorize :domain_block, :update?
@domain_block.update(update_params) if @domain_block.update(update_params)
DomainBlockWorker.perform_async(@domain_block.id, @domain_block.severity_previously_changed?)
severity_changed = @domain_block.severity_changed?
if @domain_block.save
DomainBlockWorker.perform_async(@domain_block.id, severity_changed)
log_action :update, @domain_block log_action :update, @domain_block
redirect_to admin_instances_path(limited: '1'), notice: I18n.t('admin.domain_blocks.created_msg') redirect_to admin_instances_path(limited: '1'), notice: I18n.t('admin.domain_blocks.created_msg')
else else
......
...@@ -19,12 +19,10 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController ...@@ -19,12 +19,10 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController
def create def create
authorize :domain_block, :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) @domain_block = DomainBlock.create!(resource_params)
DomainBlockWorker.perform_async(@domain_block.id) DomainBlockWorker.perform_async(@domain_block.id)
log_action :create, @domain_block log_action :create, @domain_block
render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer
end end
...@@ -41,11 +39,10 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController ...@@ -41,11 +39,10 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController
def update def update
authorize @domain_block, :update? authorize @domain_block, :update?
@domain_block.update(domain_block_params) @domain_block.update!(domain_block_params)
severity_changed = @domain_block.severity_changed? DomainBlockWorker.perform_async(@domain_block.id, @domain_block.severity_previously_changed?)
@domain_block.save!
DomainBlockWorker.perform_async(@domain_block.id, severity_changed)
log_action :update, @domain_block log_action :update, @domain_block
render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer
end end
......
...@@ -117,16 +117,11 @@ RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do ...@@ -117,16 +117,11 @@ RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do
end end
context 'when a stricter domain block already exists' do 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 it 'returns http unprocessable entity' do
expect(response).to have_http_status(422) expect(response).to have_http_status(422)
end 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 end
end end
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment