mirror of
https://github.com/internetee/registry.git
synced 2025-05-16 09:27:19 +02:00
47 lines
1.3 KiB
Ruby
47 lines
1.3 KiB
Ruby
module Repp
|
|
class DomainTransfersV1 < Grape::API
|
|
version 'v1', using: :path
|
|
|
|
resource :domain_transfers do
|
|
post '/' do
|
|
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
|
|
domain_transfers = params['data']['domainTransfers']
|
|
errors = []
|
|
|
|
domain_transfers.each do |domain_transfer|
|
|
domain_name = domain_transfer['domainName']
|
|
transfer_code = domain_transfer['transferCode']
|
|
domain = Domain.find_by(name: domain_name)
|
|
|
|
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
|
|
end
|
|
|
|
if errors.none?
|
|
status 204
|
|
body false
|
|
@response = {}
|
|
else
|
|
status 400
|
|
@response = { errors: errors }
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|