Module: NominetEPP::Operations::Transfer

Included in:
Client
Defined in:
lib/nominet-epp/operations/transfer.rb

Overview

EPP Transfer Operation

Instance Method Summary collapse

Instance Method Details

#transfer(: release, name, tag, to_account_id = nil) ⇒ Hash, false #transfer(: approve, case_id) ⇒ false, Hash #transfer(: reject, case_id) ⇒ false, Hash

Overloads:

  • #transfer(: release, name, tag, to_account_id = nil) ⇒ Hash, false

    Parameters:

    • name (String)

      Domain to release

    • tag (String)

      TAG to release the domain to

    • to_account_id (String) (defaults to: nil)

      Specific account ID to release to

    Returns:

    • (Hash)

      {:result => true|:handshake} if successfully transferred or pending

    • (false)

      transfer failed

  • #transfer(: approve, case_id) ⇒ false, Hash

    Parameters:

    • case_id (String)

      Transfer case to approve

    Returns:

    • (false)

      failed

    • (Hash)

      of :case_id and array of :domains

  • #transfer(: reject, case_id) ⇒ false, Hash

    Parameters:

    • case_id (String)

      Transfer case to reject

    Returns:

    • (false)

      failed

    • (Hash)

      of :case_id and array of :domains

Parameters:

  • type (Symbol)

    Type of transfer operation

Raises:

  • (ArgumentError)

    type is not one of :release, :approve or :reject

See Also:

  • #transfer_release
  • #transfer_approve
  • #transfer_reject


24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/nominet-epp/operations/transfer.rb', line 24

def transfer(type, *args)
  raise ArgumentError, "type must be :release, :approve, :reject" unless [:release, :approve, :reject].include?(type)

  @resp = @client.transfer do |transfer|
    transfer['op'] = type.to_s
    transfer << self.send(:"transfer_#{type}", *args)
  end

  if type == :release
    case @resp.code
    when 1000
      { :result => true }
    when 1001
      { :result => :handshake }
    else
      false
    end
  else
    return false unless @resp.success?
    nCase, domainList = @resp.data
    { :case_id => node_value(nCase,'//n:Case/n:case-id'),
      :domains => domainList.find('//n:domain-name', namespaces).map{|n| n.content.strip} }
  end
end