From e1ad847a891dd130759231b366a15f881930e878 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 16 Feb 2018 17:22:32 +0200 Subject: [PATCH] REST API: Return successful domain transfers #693 --- app/api/repp/domain_transfers_v1.rb | 7 ++++--- doc/repp/v1/domain_transfers.md | 14 +++++++++++++- test/integration/api/domain_transfers_test.rb | 7 +++++-- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/app/api/repp/domain_transfers_v1.rb b/app/api/repp/domain_transfers_v1.rb index 195740f54..addae67b2 100644 --- a/app/api/repp/domain_transfers_v1.rb +++ b/app/api/repp/domain_transfers_v1.rb @@ -15,6 +15,7 @@ module Repp new_registrar = current_user.registrar domain_transfers = params['data']['domainTransfers'] + successful_domain_transfers = [] errors = [] domain_transfers.each do |domain_transfer| @@ -25,6 +26,7 @@ module Repp if domain if domain.transfer_code == transfer_code domain.transfer(new_registrar) + successful_domain_transfers << { type: 'domain_transfer' } else errors << { title: "#{domain_name} transfer code is wrong" } end @@ -34,9 +36,8 @@ module Repp end if errors.none? - status 204 - body false - @response = {} + status 200 + @response = { data: successful_domain_transfers } else status 400 @response = { errors: errors } diff --git a/doc/repp/v1/domain_transfers.md b/doc/repp/v1/domain_transfers.md index 1f821bc6b..a6eb4683c 100644 --- a/doc/repp/v1/domain_transfers.md +++ b/doc/repp/v1/domain_transfers.md @@ -28,9 +28,21 @@ Authorization: Basic dGVzdDp0ZXN0dGVzdA== #### Response on success ``` -HTTP/1.1 204 +HTTP/1.1 200 +Content-Type: application/json +{ + "data":[ + { + "type":"domain_transfer" + }, + { + "type":"domain_transfer" + } + ] +} ``` + #### Response on failure ``` HTTP/1.1 400 diff --git a/test/integration/api/domain_transfers_test.rb b/test/integration/api/domain_transfers_test.rb index 0debc37c0..8d6cd6c5e 100644 --- a/test/integration/api/domain_transfers_test.rb +++ b/test/integration/api/domain_transfers_test.rb @@ -5,9 +5,12 @@ class APIDomainTransfersTest < ActionDispatch::IntegrationTest request_params = { format: :json, data: { domainTransfers: [{ domainName: 'shop.test', transferCode: '65078d5' }] } } post '/repp/v1/domain_transfers', request_params, { 'HTTP_AUTHORIZATION' => http_auth_key } - assert_response 204 assert_equal registrars(:goodnames), domains(:shop).registrar - assert_empty response.body + assert_response 200 + assert_equal ({ data: [{ + type: 'domain_transfer' + }] }), + JSON.parse(response.body, symbolize_names: true) end def test_fails_if_domain_does_not_exist