File Coverage

blib/lib/Net/DRI/Protocol/EPP/Extensions/CentralNic/Release.pm
Criterion Covered Total %
statement 15 29 51.7
branch 0 6 0.0
condition 0 15 0.0
subroutine 5 8 62.5
pod 0 3 0.0
total 20 61 32.7


line stmt bran cond sub pod time code
1             ## Domain Registry Interface, CentralNic Release EPP extension
2             ## (http://labs.centralnic.com/epp/ext/release.php)
3             ##
4             ## Copyright (c) 2007,2008,2013 Patrick Mevzek . All rights reserved.
5             ##
6             ## This file is part of Net::DRI
7             ##
8             ## Net::DRI is free software; you can redistribute it and/or modify
9             ## it under the terms of the GNU General Public License as published by
10             ## the Free Software Foundation; either version 2 of the License, or
11             ## (at your option) any later version.
12             ##
13             ## See the LICENSE file that comes with this distribution for more details.
14             ####################################################################################################
15              
16             package Net::DRI::Protocol::EPP::Extensions::CentralNic::Release;
17              
18 1     1   1082 use strict;
  1         2  
  1         30  
19 1     1   4 use warnings;
  1         2  
  1         21  
20              
21 1     1   4 use Net::DRI::Util;
  1         2  
  1         15  
22 1     1   4 use Net::DRI::Exception;
  1         2  
  1         17  
23 1     1   4 use Net::DRI::Protocol::EPP::Core::Domain;
  1         1  
  1         265  
24              
25             =pod
26              
27             =head1 NAME
28              
29             Net::DRI::Protocol::EPP::Extensions::CentralNic::Release - EPP Release CentralNic extension commands for Net::DRI
30              
31             =head1 DESCRIPTION
32              
33             Please see the README file for details.
34              
35             =head1 SUPPORT
36              
37             For now, support questions should be sent to:
38              
39             Enetdri@dotandco.comE
40              
41             Please also see the SUPPORT file in the distribution.
42              
43             =head1 SEE ALSO
44              
45             Ehttp://www.dotandco.com/services/software/Net-DRI/E
46              
47             =head1 AUTHOR
48              
49             Patrick Mevzek, Enetdri@dotandco.comE
50              
51             =head1 COPYRIGHT
52              
53             Copyright (c) 2007,2008,2013 Patrick Mevzek .
54             All rights reserved.
55              
56             This program is free software; you can redistribute it and/or modify
57             it under the terms of the GNU General Public License as published by
58             the Free Software Foundation; either version 2 of the License, or
59             (at your option) any later version.
60              
61             See the LICENSE file that comes with this distribution for more details.
62              
63             =cut
64              
65             ####################################################################################################
66              
67             sub register_commands
68             {
69 0     0 0   my ($class,$version)=@_;
70 0           my %tmp=( release => [ \&release, \&release_parse ]);
71 0           return { 'domain' => \%tmp };
72             }
73              
74             ####################################################################################################
75              
76             sub release
77             {
78 0     0 0   my ($epp,$domain,$rd)=@_;
79 0           my $mes=$epp->message();
80              
81 0 0 0       Net::DRI::Exception->die(1,'protocol/EPP',2,'Domain name needed') unless defined($domain) && $domain;
82 0 0         Net::DRI::Exception->die(1,'protocol/EPP',10,'Invalid domain name: '.$domain) unless Net::DRI::Util::is_hostname($domain);
83              
84 0 0 0       Net::DRI::Exception::usererr_invalid_parameters('release operation needs a clID') unless (defined($rd) && (ref($rd) eq 'HASH') && exists($rd->{clID}) && defined($rd->{clID}) && $rd->{clID});
      0        
      0        
      0        
85              
86 0           $mes->command([['transfer',{'op'=>'release'}],'domain:transfer',sprintf('xmlns:domain="%s" xsi:schemaLocation="%s %s"',$mes->nsattrs('domain'))]);
87 0           my @d=(['domain:name',$domain],['domain:clID',$rd->{clID}]);
88 0           $mes->command_body(\@d);
89 0           return;
90             }
91              
92             sub release_parse
93             {
94 0     0 0   my (@args)=@_;
95 0           return Net::DRI::Protocol::EPP::Core::Domain::transfer_parse(@args);
96             }
97              
98             ####################################################################################################
99             1;