mirror of
https://github.com/internetee/registry.git
synced 2025-07-05 10:43:32 +02:00
Basic transfer command for domain
This commit is contained in:
parent
bb78c0f581
commit
707c60b36e
8 changed files with 76 additions and 2 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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])
|
||||
|
|
21
app/views/epp/domains/transfer.xml.builder
Normal file
21
app/views/epp/domains/transfer.xml.builder
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue