mirror of
https://github.com/internetee/registry.git
synced 2025-07-22 10:45:58 +02:00
parent
f7c2b25a66
commit
228078a84e
30 changed files with 474 additions and 66 deletions
|
@ -59,5 +59,6 @@ module Repp
|
|||
mount Repp::AccountV1
|
||||
mount Repp::DomainTransfersV1
|
||||
mount Repp::NameserversV1
|
||||
mount Repp::DomainContactsV1
|
||||
end
|
||||
end
|
||||
|
|
35
app/api/repp/domain_contacts_v1.rb
Normal file
35
app/api/repp/domain_contacts_v1.rb
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue