internetee-registry/app/api/repp/domain_contacts_v1.rb
2018-04-18 15:32:57 +03:00

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