registry icon indicating copy to clipboard operation
registry copied to clipboard

feat: Add CSV support for bulk domain operations in REPP API

Open OlegPhenomenon opened this issue 3 months ago • 1 comments

  • Add CSV file upload support for domain transfers (/repp/v1/domains/transfer)
  • Add CSV file upload support for bulk nameserver changes (/repp/v1/domains/nameservers/bulk)
  • Implement parse_transfer_csv() and parse_nameserver_csv() methods
  • Add proper strong parameters handling for file uploads
  • Add bulk nameserver update route and controller action
  • Fix nameserver replacement logic to maintain minimum count requirement
  • Add comprehensive test coverage with valid/invalid CSV fixtures
  • Support both JSON and CSV input formats for bulk operations

CSV formats:

  • Domain transfers: Domain,Transfer code
  • Nameserver changes: Domain (+ required new_hostname parameter)

OlegPhenomenon avatar Sep 05 '25 09:09 OlegPhenomenon

Example of transfer

csv data:

Domain,Transfer code
hospital.test,23118v2
example.test,abc123def

request:

curl -X POST "https://your-domain.com/repp/v1/domains/transfer" \
  -H "Authorization: Basic $(echo -n 'username:password' | base64)" \
  -H "Content-Type: multipart/form-data" \
  -F "csv_file=@domain_transfers.csv"

Example of nameserver

csv data:

Domain
shop.test
example.test

request:

curl -X POST "https://your-domain.com/repp/v1/domains/nameservers/bulk" \
  -H "Authorization: Basic $(echo -n 'username:password' | base64)" \
  -H "Content-Type: multipart/form-data" \
  -F "csv_file=@nameserver_changes.csv" \
  -F "new_hostname=ns1.newserver.ee" \
  -F "ipv4[]=192.168.1.1" \
  -F "ipv6[]=2001:db8::1"

OlegPhenomenon avatar Sep 05 '25 11:09 OlegPhenomenon