Class: NominetEPP::Contact::Update

Inherits:
Request
  • Object
show all
Defined in:
lib/nominet-epp/requests/contact/update.rb

Instance Attribute Summary

Attributes inherited from Request

#command, #extension

Instance Method Summary collapse

Methods inherited from Request

#command_name, #namespaces, #xml_namespace, #xml_node

Constructor Details

#initialize(name, changes = {}) ⇒ Update

Returns a new instance of Update.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/nominet-epp/requests/contact/update.rb', line 4

def initialize(name, changes = {})
  @name = name
  @namespaces = {}

  extensions = (changes[:add] || {}).merge(changes[:chg] || {})
  extensions.delete_if { |k,_| !UpdateExtension::KEYS.include?(k) }

  changes[:add] && changes[:add].delete_if { |k,_| UpdateExtension::KEYS.include?(k) }
  changes[:rem] && changes[:rem].delete_if { |k,_| UpdateExtension::KEYS.include?(k) }
  changes[:chg] && changes[:chg].delete_if { |k,_| UpdateExtension::KEYS.include?(k) }

  # Changing the organisation is not permitted by Nominet
  changes[:chg] && changes[:chg][:postal_info] && changes[:chg][:postal_info].delete(:org)

  @contact_ext = UpdateExtension.new(extensions) rescue nil

  @command    = EPP::Contact::Update.new(name, changes)
  @extension  = EPP::Requests::Extension.new(@contact_ext) rescue nil
end