Basic transfer command for domain

This commit is contained in:
Martin Lensment 2014-08-27 17:25:39 +03:00
parent bb78c0f581
commit 707c60b36e
8 changed files with 76 additions and 2 deletions

View file

@ -9,6 +9,8 @@ module Epp::Common
included do
protect_from_forgery with: :null_session
before_action :validate_request, only: [:proxy]
helper_method :current_epp_user
end
def proxy

View file

@ -14,6 +14,10 @@ class Epp::CommandsController < ApplicationController
send("renew_#{OBJECT_TYPES[params_hash['epp']['xmlns:ns2']]}")
end
def transfer
send("transfer_#{OBJECT_TYPES[params_hash['epp']['xmlns:ns2']]}")
end
def check
send("check_#{OBJECT_TYPES[params_hash['epp']['xmlns:ns2']]}")
end

View file

@ -59,6 +59,18 @@ module Epp::DomainsHelper
end
end
def transfer_domain
@domain = find_domain
handle_errors(@domain) and return unless @domain
@domain.transfer_requested_at = Time.now
@domain.transferred_at = Time.now
@domain.save
render '/epp/domains/transfer'
end
### HELPER METHODS ###
private
@ -104,6 +116,12 @@ module Epp::DomainsHelper
xml_attrs_present?(@ph, [['name']])
end
## TRANSFER
def validate_domain_transfer_request
@ph = params_hash['epp']['command']['transfer']['transfer']
xml_attrs_present?(@ph, [['name']])
end
## SHARED
def find_domain
domain = Domain.find_by(name: @ph[:name])

View file

@ -0,0 +1,21 @@
xml.epp_head do
xml.response do
xml.result('code' => '1000') do
xml.msg 'Command completed successfully'
end
xml.resData do
xml.tag!('domain:trnData', 'xmlns:domain' => 'urn:ietf:params:xml:ns:domain-1.0') do
xml.tag!('domain:name', @domain.name)
xml.tag!('domain:trStatus', 'serverApproved')
xml.tag!('domain:reID', current_epp_user.username)
xml.tag!('domain:reDate', @domain.transfer_requested_at)
xml.tag!('domain:acID', current_epp_user.username)
xml.tag!('domain:acDate', @domain.transferred_at)
xml.tag!('domain:exDate', @domain.valid_to)
end
end
end
xml << render('/epp/shared/trID')
end