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 1.067 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )