internetee-registry/app/controllers/registrar/domain_transfers_controller.rb
2021-05-06 12:14:35 +05:00

49 lines
1.7 KiB
Ruby

class Registrar
class DomainTransfersController < BulkChangeController
before_action do
authorize! :transfer, Depp::Domain
end
def new
end
def create
if params[:batch_file].present?
csv = CSV.read(params[:batch_file].path, headers: true)
domain_transfers = []
csv.each do |row|
domain_name = row['Domain']
transfer_code = row['Transfer code']
domain_transfers << { 'domain_name' => domain_name, 'transfer_code' => transfer_code }
end
uri = URI.parse("#{ENV['repp_url']}domains/transfer")
request = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')
request.body = { data: { domain_transfers: domain_transfers } }.to_json
request.basic_auth(current_registrar_user.username,
current_registrar_user.plain_text_password)
response = do_request(request, uri)
parsed_response = JSON.parse(response.body, symbolize_names: true)
if response.code == '200'
failed = parsed_response[:data][:failed].each(&:domain_name).join(', ')
flash[:notice] = t('.transferred', count: parsed_response[:data][:success].size,
failed: failed)
redirect_to registrar_domains_url
else
@api_errors = parsed_response[:message]
render 'registrar/bulk_change/new', locals: { active_tab: :bulk_transfer }
end
else
params[:request] = true # EPP domain:transfer "op" attribute
domain = Depp::Domain.new(current_user: depp_current_user)
@data = domain.transfer(params)
render :new unless response_ok?
end
end
end
end