Net-DRI
view release on metacpan or search on metacpan
lib/Net/DRI/Protocol/EPP/Extensions/COOP/Contact.pm view on Meta::CPAN
my ($mes,$epp,$tag)=@_;
return $mes->command_extension_register($tag,sprintf('xmlns:coop="%s"',$mes->nsattrs('coop')));
}
sub build_sponsors
{
my $s=shift;
return map { ['coop:sponsor',$_] } (ref($s)? @$s : $s);
}
sub build_prefs
{
my $contact=shift;
my @n;
push @n,['coop:langPref',$contact->lang()] if $contact->lang();
push @n,['coop:mailingListPref',$contact->mailing_list()] if $contact->mailing_list();
return @n;
}
sub create
{
my ($epp,$contact)=@_;
my $mes=$epp->message();
## validate() has been called
my @n;
push @n,build_prefs($contact);
push @n,build_sponsors($contact->sponsors()) if $contact->sponsors();
return unless @n;
my $eid=build_command_extension($mes,$epp,'coop:create');
$mes->command_extension($eid,\@n);
}
sub update
{
my ($epp,$domain,$todo)=@_;
my $mes=$epp->message();
my @n;
push @n,['coop:add',build_sponsors($todo->add('sponsor'))] if $todo->add('sponsor');
push @n,['coop:rem',build_sponsors($todo->del('sponsor'))] if $todo->del('sponsor');
my @nn=build_prefs($todo->set('info'));
push @n,['coop:chg',\@nn] if @nn;
return unless @n;
my $eid=build_command_extension($mes,$epp,'coop:update');
$mes->command_extension($eid,\@n);
}
sub info_parse
{
my ($po,$otype,$oaction,$oname,$rinfo)=@_;
( run in 0.715 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )