Add bulk replace to registrar area

#662
This commit is contained in:
Artur Beljajev 2018-03-19 00:55:35 +02:00
parent f7c2b25a66
commit 228078a84e
30 changed files with 474 additions and 66 deletions

View file

@ -59,5 +59,6 @@ module Repp
mount Repp::AccountV1
mount Repp::DomainTransfersV1
mount Repp::NameserversV1
mount Repp::DomainContactsV1
end
end

View file

@ -0,0 +1,35 @@
module Repp
class DomainContactsV1 < Grape::API
version 'v1', using: :path
resource :domains do
resource :contacts do
patch '/' do
predecessor = current_user.registrar.contacts.find_by(code: params[:predecessor])
successor = current_user.registrar.contacts.find_by(code: params[:successor])
unless predecessor
error!({ error: { type: 'invalid_request_error',
param: 'predecessor',
message: "No such contact: #{params[:predecessor]}" } }, :bad_request)
end
unless successor
error!({ error: { type: 'invalid_request_error',
param: 'successor',
message: "No such contact: #{params[:successor]}" } }, :bad_request)
end
if predecessor == successor
error!({ error: { type: 'invalid_request_error',
message: 'Successor contact must be different from predecessor' } },
:bad_request)
end
affected_domains, skipped_domains = TechDomainContact.replace(predecessor, successor)
@response = { affected_domains: affected_domains, skipped_domains: skipped_domains }
end
end
end
end
end