diff --git a/app/controllers/api/v1/registrant/domains_controller.rb b/app/controllers/api/v1/registrant/domains_controller.rb index a416aaec0..4e5c8bb28 100644 --- a/app/controllers/api/v1/registrant/domains_controller.rb +++ b/app/controllers/api/v1/registrant/domains_controller.rb @@ -1,3 +1,5 @@ +require 'serializers/registrant_api/domain' + module Api module V1 module Registrant @@ -17,7 +19,13 @@ module Api end @domains = associated_domains(current_registrant_user).limit(limit).offset(offset) - render json: @domains + + serialized_domains = @domains.map do |item| + serializer = Serializers::RegistrantApi::Domain.new(item) + serializer.to_json + end + + render json: serialized_domains end def show @@ -25,7 +33,8 @@ module Api @domain = domain_pool.find_by(uuid: params[:uuid]) if @domain - render json: @domain + serializer = Serializers::RegistrantApi::Domain.new(@domain) + render json: serializer.to_json else render json: { errors: [{ base: ['Domain not found'] }] }, status: :not_found end diff --git a/doc/registrant-api/v1/domain.md b/doc/registrant-api/v1/domain.md index 09495220d..f56bb6014 100644 --- a/doc/registrant-api/v1/domain.md +++ b/doc/registrant-api/v1/domain.md @@ -11,15 +11,6 @@ Returns domains of the current registrant. | ---------- | -------- | ---- | -------------- | ----------- | | limit | false | Integer | [1..200] | How many domains to show | | offset | false | Integer | | Domain number to start at | -| details | false | String | ["true", "false"] | Whether to include details | - -#### Request -``` -GET api/v1/registrant/domains?limit=1&details=true HTTP/1.1 -Accept: application/json -Authorization: Bearer Z2l0bGFiOmdoeXQ5ZTRmdQ== -Content-Type: application/json -``` #### Response ``` @@ -27,13 +18,11 @@ HTTP/1.1 200 Content-Type: application/json { - "domains": [ + [ { - "uuid": "98d1083a-8863-4153-93e4-caee4a013535", + "id": "98d1083a-8863-4153-93e4-caee4a013535", "name": "domain0.ee", - "registrar_id": 2, - "registered_at": "2015-09-09T09:11:14.861Z", - "status": null, + "registrar": "Best Names", "valid_from": "2015-09-09T09:11:14.861Z", "valid_to": "2016-09-09T09:11:14.861Z", "registrant_id": 1, @@ -53,23 +42,28 @@ Content-Type: application/json "delete_at": "2016-10-24T09:11:14.861Z", "registrant_verification_asked_at": null, "registrant_verification_token": null, - "pending_json": { - }, + "locked_by_registrant_at": "2015-09-09T09:11:14.861Z", + "pending_json": {}, "force_delete_at": null, "statuses": [ "ok" ], "reserved": false, - "status_notes": { - }, - "statuses_backup": [ - ] + "status_notes": {}, + "statuses_backup": [] } - ], - "total_number_of_records": 2 + ] } ``` +#### Request +``` +GET api/v1/registrant/domains HTTP/1.1 +Accept: application/json +Authorization: Bearer Z2l0bGFiOmdoeXQ5ZTRmdQ== +Content-Type: application/json +``` + ## GET api/v1/registrant/domains Returns domain names with offset. @@ -77,7 +71,7 @@ Returns domain names with offset. #### Request ``` -GET api/v1/registrant/domains?offset=1 HTTP/1.1 +GET api/v1/registrant/domains?offset=1&limit=1 HTTP/1.1 Accept: application/json Authorization: Bearer Z2l0bGFiOmdoeXQ5ZTRmdQ== Content-Type: application/json @@ -89,10 +83,40 @@ HTTP/1.1 200 Content-Type: application/json { - "domains": [ - "domain1.ee" - ], - "total_number_of_records": 2 + [ + { + "id": "98d1083a-8863-4153-93e4-caee4a013535", + "name": "domain0.ee", + "registrar": "Best Names", + "valid_to": "2016-09-09T09:11:14.861Z", + "registrant_id": 1, + "transfer_code": "98oiewslkfkd", + "created_at": "2015-09-09T09:11:14.861Z", + "updated_at": "2015-09-09T09:11:14.860Z", + "name_dirty": "domain0.ee", + "name_puny": "domain0.ee", + "period": 1, + "period_unit": "y", + "creator_str": null, + "updator_str": null, + "legacy_id": null, + "legacy_registrar_id": null, + "legacy_registrant_id": null, + "outzone_at": "2016-09-24T09:11:14.861Z", + "delete_at": "2016-10-24T09:11:14.861Z", + "registrant_verification_asked_at": null, + "registrant_verification_token": null, + "locked_by_registrant_at": "2015-09-09T09:11:14.861Z", + "pending_json": {}, + "force_delete_at": null, + "statuses": [ + "ok" + ], + "reserved": false, + "status_notes": {}, + "statuses_backup": [] + } + ] } ``` @@ -116,12 +140,10 @@ HTTP/1.1 200 Content-Type: application/json { - "uuid": "98d1083a-8863-4153-93e4-caee4a013535", + "id": "98d1083a-8863-4153-93e4-caee4a013535", "name": "domain0.ee", - "registrar_id": 2, + "registrar": "Best Names", "registered_at": "2015-09-09T09:11:14.861Z", - "status": null, - "valid_from": "2015-09-09T09:11:14.861Z", "valid_to": "2016-09-09T09:11:14.861Z", "registrant_id": 1, "transfer_code": "98oiewslkfkd", @@ -140,6 +162,7 @@ Content-Type: application/json "delete_at": "2016-10-24T09:11:14.861Z", "registrant_verification_asked_at": null, "registrant_verification_token": null, + "locked_by_registrant_at": "2015-09-09T09:11:14.861Z", "pending_json": {}, "force_delete_at": null, "statuses": [ diff --git a/test/integration/api/registrant/registrant_api_domains_test.rb b/test/integration/api/registrant/registrant_api_domains_test.rb index 0764db3aa..3195514de 100644 --- a/test/integration/api/registrant/registrant_api_domains_test.rb +++ b/test/integration/api/registrant/registrant_api_domains_test.rb @@ -27,7 +27,12 @@ class RegistrantApiDomainsTest < ApplicationIntegrationTest assert_equal(200, response.status) domain = JSON.parse(response.body, symbolize_names: true) + assert_equal('hospital.test', domain[:name]) + assert_equal('5edda1a5-3548-41ee-8b65-6d60daf85a37', domain[:id]) + assert_equal('Good Names', domain[:registrar]) + assert_equal([], domain[:nameservers]) + assert(domain.has_key?(:locked_by_registrant_at)) end def test_get_non_existent_domain_details_by_uuid @@ -45,6 +50,9 @@ class RegistrantApiDomainsTest < ApplicationIntegrationTest response_json = JSON.parse(response.body, symbolize_names: true) array_of_domain_names = response_json.map { |x| x[:name] } assert(array_of_domain_names.include?('hospital.test')) + + array_of_domain_registrars = response_json.map { |x| x[:registrar] } + assert(array_of_domain_registrars.include?('Good Names')) end def test_root_accepts_limit_and_offset_parameters