Implement domain transfer API

#660
This commit is contained in:
Artur Beljajev 2018-01-24 13:38:51 +02:00
parent 05bdb11ee3
commit 0751a69d83
3 changed files with 69 additions and 17 deletions

View file

@ -4,13 +4,44 @@ module Repp
resource :domain_transfers do
post '/' do
params['domainTransfers'].each do |domain_transfer|
params do
requires :data, type: Hash do
requires :domainTransfers, type: Array do
requires :domainName, type: String, allow_blank: false
requires :transferCode, type: String, allow_blank: false
end
end
end
new_registrar = current_user.registrar
request_domain_transfers = params['data']['domainTransfers']
response_domain_transfers = []
errors = []
request_domain_transfers.each do |domain_transfer|
domain_name = domain_transfer['domainName']
transfer_code = domain_transfer['transferCode']
new_registrar = current_user.registrar
domain = Domain.find_by(name: domain_name)
domain.transfer(registrar: new_registrar)
if domain
if domain.transfer_code == transfer_code
domain.transfer(new_registrar)
else
errors << { title: "#{domain_name} transfer code is wrong" }
end
else
errors << { title: "#{domain_name} does not exist" }
end
response_domain_transfers << { domainName: domain_name }
end
if errors.none?
status 204
else
status 400
{ errors: errors }
end
end
end