Info request for domain

This commit is contained in:
Martin Lensment 2014-08-14 12:54:19 +03:00
parent ed73278620
commit c34f01aeb3
6 changed files with 116 additions and 0 deletions

View file

@ -26,6 +26,12 @@ module Epp::DomainsHelper
render '/epp/domains/renew'
end
def info_domain
@domain = find_domain
render '/epp/domains/info'
end
### HELPER METHODS ###
private
@ -58,6 +64,13 @@ module Epp::DomainsHelper
xml_attrs_present?(@ph, [['name'], ['curExpDate'], ['period']])
end
## INFO
def validate_domain_info_request
@ph = params_hash['epp']['command']['info']['info']
xml_attrs_present?(@ph, [['name']])
end
## SHARED
def find_domain
domain = Domain.find_by(name: @ph[:name])

View file

@ -32,6 +32,9 @@ class Domain < ActiveRecord::Base
has_and_belongs_to_many :nameservers
delegate :code, to: :owner_contact, prefix: true
delegate :name, to: :registrar, prefix: true
validates :name_dirty, domain_name: true, uniqueness: true
validates :period, numericality: { only_integer: true }
validates :name, :owner_contact, presence: true

View file

@ -0,0 +1,53 @@
xml.epp_head do
xml.response do
xml.result('code' => '1000') do
xml.msg 'Command completed successfully'
end
xml.resData do
xml.tag!('domain:infData', 'xmlns:domain' => 'urn:ietf:params:xml:ns:domain-1.0') do
xml.tag!('domain:name', @domain.name)
xml.tag!('domain:status', 's' => @domain.status) if @domain.status
xml.tag!('domain:registrant', @domain.owner_contact_code)
@domain.tech_contacts.each do |x|
xml.tag!('domain:contact', x.code, 'type' => 'tech')
end
@domain.admin_contacts.each do |x|
xml.tag!('domain:contact', x.code, 'type' => 'admin')
end
xml.tag!('domain:ns') do
@domain.nameservers.each do |x|
xml.tag!('domain:hostObj', x.hostname)
end
end
## TODO Find out what this domain:host is all about
xml.tag!('domain:clID', @domain.owner_contact_code)
xml.tag!('domain:crID', @domain.registrar_name)
xml.tag!('domain:crDate', @domain.created_at)
xml.tag!('domain:exDate', @domain.valid_to)
# TODO Make domain stampable
#xml.tag!('domain:upID', @domain.updated_by)
xml.tag!('domain:upDate', @domain.updated_at) if @domain.updated_at != @domain.created_at
# TODO Make domain transferrable
#xml.tag!('domain:trDate', @domain.transferred_at) if @domain.transferred_at
xml.tag!('domain:authInfo') do
xml.tag!('domain:pw', @domain.auth_info)
end
end
end
end
xml << render('/epp/shared/trID')
end