File Coverage

blib/lib/Net/DRI/Protocol/EPP/Extensions/VeriSign/Sync.pm
Criterion Covered Total %
statement 12 31 38.7
branch 0 8 0.0
condition 0 3 0.0
subroutine 4 7 57.1
pod 0 3 0.0
total 16 52 30.7


line stmt bran cond sub pod time code
1             ## Domain Registry Interface, EPP Sync aka ConsoliDate (draft-hollenbeck-epp-sync-01)
2             ##
3             ## Copyright (c) 2006,2007,2013,2016 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::VeriSign::Sync;
16              
17 1     1   1486 use strict;
  1         2  
  1         28  
18 1     1   4 use warnings;
  1         1  
  1         22  
19              
20 1     1   3 use Net::DRI::Util;
  1         2  
  1         16  
21 1     1   4 use Net::DRI::Exception;
  1         1  
  1         282  
22              
23             =pod
24              
25             =head1 NAME
26              
27             Net::DRI::Protocol::EPP::Extensions::VeriSign::Sync - EPP Sync commands (draft-hollenbeck-epp-sync-01) 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,2007,2013,2016 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             update => [ \&update, undef ],
70             );
71              
72 0           return { 'domain' => \%tmp };
73             }
74              
75 0     0 0   sub capabilities_add { return ('domain_update','sync',['set']); }
76              
77             ####################################################################################################
78              
79             ############ Transform commands
80              
81             sub update
82             {
83 0     0 0   my ($epp,$domain,$todo)=@_;
84 0           my $mes=$epp->message();
85              
86 0           my $sync=$todo->set('sync');
87 0 0 0       return unless (defined($sync) && $sync);
88              
89 0           my $date;
90 0 0         if (ref($sync))
91             {
92 0           Net::DRI::Util::check_isa($sync,'DateTime');
93 0           $date=$sync->strftime('--%m-%d');
94             } else
95             {
96 0 0         Net::DRI::Exception::usererr_invalid_parameters('Sync date must be of type XML Schema gMonthDay') unless ($sync=~m/^(?:--)?(\d{2}-\d{2})$/);
97 0           $date='--'.$1;
98             }
99              
100 0 0         Net::DRI::Exception::usererr_invalid_parameters('Sync operation can not be mixed with other domain changes') if (grep { $_ ne 'sync' } $todo->types());
  0            
101              
102 0           my $eid=$mes->command_extension_register('sync:update','xmlns:sync="http://www.verisign.com/epp/sync-1.0" xsi:schemaLocation="http://www.verisign.com/epp/sync-1.0 sync-1.0.xsd"');
103 0           $mes->command_extension($eid,['sync:expMonthDay',$date]);
104 0           return;
105             }
106              
107             ####################################################################################################
108             1;