mirror of
https://github.com/internetee/registry.git
synced 2025-06-12 15:44:45 +02:00
36 lines
1.3 KiB
Ruby
36 lines
1.3 KiB
Ruby
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: 'New contact ID must be different from current' \
|
|
' contact ID' } },
|
|
: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
|