From 016c5e802cd30f9544bc3f3655bb7aaefc2e529f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Tue, 23 Mar 2021 12:04:03 +0200 Subject: [PATCH] REPP: Domain info for not-sponsoring registrars --- app/controllers/repp/v1/domains_controller.rb | 7 +++++-- lib/serializers/repp/domain.rb | 13 +++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/controllers/repp/v1/domains_controller.rb b/app/controllers/repp/v1/domains_controller.rb index 56de83661..e83dfde4c 100644 --- a/app/controllers/repp/v1/domains_controller.rb +++ b/app/controllers/repp/v1/domains_controller.rb @@ -5,7 +5,7 @@ module Repp before_action :set_authorized_domain, only: %i[transfer_info destroy] before_action :validate_registrar_authorization, only: %i[transfer_info destroy] before_action :forward_registrar_id, only: %i[create update destroy] - before_action :set_domain, only: %i[show update] + before_action :set_domain, only: %i[update] api :GET, '/repp/v1/domains' desc 'Get all existing domains' @@ -20,7 +20,10 @@ module Repp api :GET, '/repp/v1/domains/:domain_name' desc 'Get a specific domain' def show - render_success(data: { domain: Serializers::Repp::Domain.new(@domain).to_json }) + @domain = Epp::Domain.find_by!(name: params[:id]) + sponsored = @domain.registrar == current_user.registrar + render_success(data: { domain: Serializers::Repp::Domain.new(@domain, + sponsored: sponsored).to_json }) end api :POST, '/repp/v1/domains' diff --git a/lib/serializers/repp/domain.rb b/lib/serializers/repp/domain.rb index 0f81b6417..519a40456 100644 --- a/lib/serializers/repp/domain.rb +++ b/lib/serializers/repp/domain.rb @@ -3,8 +3,9 @@ module Serializers class Domain attr_reader :domain - def initialize(domain) + def initialize(domain, sponsored: true) @domain = domain + @sponsored = sponsored end def to_json(obj = domain) @@ -12,10 +13,10 @@ module Serializers name: obj.name, registrant: obj.registrant.code, created_at: obj.created_at, updated_at: obj.updated_at, expire_time: obj.expire_time, outzone_at: obj.outzone_at, delete_date: obj.delete_date, force_delete_date: obj.force_delete_date, - transfer_code: obj.auth_info, contacts: contacts, nameservers: nameservers, - dnssec_keys: dnssec_keys, statuses: obj.statuses + contacts: contacts, nameservers: nameservers, dnssec_keys: dnssec_keys, + statuses: obj.statuses, registrar: registrar } - + json[:transfer_code] = obj.auth_info if @sponsored json end @@ -33,6 +34,10 @@ module Serializers public_key: nssec.public_key } end end + + def registrar + { name: domain.registrar.name, website: domain.registrar.website } + end end end end