File Coverage

blib/lib/Net/DRI/Protocol/EPP/Extensions/AERO/Contact.pm
Criterion Covered Total %
statement 12 34 35.2
branch 0 14 0.0
condition 0 6 0.0
subroutine 4 6 66.6
pod 0 2 0.0
total 16 62 25.8


line stmt bran cond sub pod time code
1             ## Domain Registry Interface, .AERO Contact EPP extension commands
2             ##
3             ## Copyright (c) 2006-2008,2013 Patrick Mevzek . All rights reserved.
4             ##
5             ## This file is part of Net::DRI
6             ##
7             ## Net::DRI is free software; you can redistribute it and/or modify
8             ## it under the terms of the GNU General Public License as published by
9             ## the Free Software Foundation; either version 2 of the License, or
10             ## (at your option) any later version.
11             ##
12             ## See the LICENSE file that comes with this distribution for more details.
13             ####################################################################################################
14              
15             package Net::DRI::Protocol::EPP::Extensions::AERO::Contact;
16              
17 1     1   992 use strict;
  1         3  
  1         28  
18 1     1   3 use warnings;
  1         2  
  1         18  
19              
20 1     1   4 use Net::DRI::Util;
  1         1  
  1         12  
21 1     1   4 use DateTime::Format::ISO8601;
  1         1  
  1         269  
22              
23             =pod
24              
25             =head1 NAME
26              
27             Net::DRI::Protocol::EPP::Extensions::AERO::Contact - .AERO EPP Contact extension commands for Net::DRI
28              
29             =head1 DESCRIPTION
30              
31             Please see the README file for details.
32              
33             =head1 SUPPORT
34              
35             For now, support questions should be sent to:
36              
37             Enetdri@dotandco.comE
38              
39             Please also see the SUPPORT file in the distribution.
40              
41             =head1 SEE ALSO
42              
43             Ehttp://www.dotandco.com/services/software/Net-DRI/E
44              
45             =head1 AUTHOR
46              
47             Patrick Mevzek, Enetdri@dotandco.comE
48              
49             =head1 COPYRIGHT
50              
51             Copyright (c) 2006-2008,2013 Patrick Mevzek .
52             All rights reserved.
53              
54             This program is free software; you can redistribute it and/or modify
55             it under the terms of the GNU General Public License as published by
56             the Free Software Foundation; either version 2 of the License, or
57             (at your option) any later version.
58              
59             See the LICENSE file that comes with this distribution for more details.
60              
61             =cut
62              
63             ####################################################################################################
64              
65             sub register_commands
66             {
67 0     0 0   my ($class,$version)=@_;
68 0           my %tmp=(
69             info => [ undef, \&info_parse ],
70             );
71              
72 0           return { 'contact' => \%tmp };
73             }
74              
75             ####################################################################################################
76              
77             sub info_parse
78             {
79 0     0 0   my ($po,$otype,$oaction,$oname,$rinfo)=@_;
80 0           my $mes=$po->message();
81 0 0         return unless $mes->is_success();
82              
83 0           my $infdata=$mes->get_extension('aero','infData');
84 0 0         return unless $infdata;
85              
86 0           my $c=$infdata->getChildrenByTagNameNS($mes->ns('aero'),'ensInfo');
87 0 0 0       return unless ($c && $c->size()==1);
88 0           $c=$c->shift()->getFirstChild();
89              
90 0           my %ens;
91 0           while($c)
92             {
93 0 0         next unless ($c->nodeType() == 1); ## only for element nodes
94 0   0       my $name=$c->localname() || $c->nodeName();
95 0 0         next unless $name;
96              
97 0 0         if (my ($tag)=($name=~m/^(\S+)$/))
98             {
99 0           $ens{Net::DRI::Util::remcam($tag)}=$c->getFirstChild()->getData();
100             }
101              
102 0           } continue { $c=$c->getNextSibling(); }
103              
104 0 0         $ens{last_checked_date}=DateTime::Format::ISO8601->new()->parse_datetime($ens{last_checked_date}) if exists($ens{last_checked_date});
105              
106 0           $rinfo->{contact}->{$oname}->{self}->ens(\%ens);
107 0           return;
108             }
109              
110             ####################################################################################################
111             1;