File Coverage

blib/lib/Net/DRI/Protocol/EPP/Extensions/VeriSign/Sync.pm
Criterion Covered Total %
statement 15 34 44.1
branch 0 8 0.0
condition 0 3 0.0
subroutine 5 8 62.5
pod 0 3 0.0
total 20 56 35.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 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   1264 use strict;
  1         2  
  1         28  
18 1     1   4 use warnings;
  1         1  
  1         19  
19              
20 1     1   4 use Net::DRI::Util;
  1         2  
  1         14  
21 1     1   4 use Net::DRI::Exception;
  1         1  
  1         14  
22 1     1   6 use Net::DRI::Protocol::EPP::Core::Domain;
  1         1  
  1         276  
23              
24             =pod
25              
26             =head1 NAME
27              
28             Net::DRI::Protocol::EPP::Extensions::VeriSign::Sync - EPP Sync commands (draft-hollenbeck-epp-sync-01) for Net::DRI
29              
30             =head1 DESCRIPTION
31              
32             Please see the README file for details.
33              
34             =head1 SUPPORT
35              
36             For now, support questions should be sent to:
37              
38             Enetdri@dotandco.comE
39              
40             Please also see the SUPPORT file in the distribution.
41              
42             =head1 SEE ALSO
43              
44             Ehttp://www.dotandco.com/services/software/Net-DRI/E
45              
46             =head1 AUTHOR
47              
48             Patrick Mevzek, Enetdri@dotandco.comE
49              
50             =head1 COPYRIGHT
51              
52             Copyright (c) 2006,2007,2013 Patrick Mevzek .
53             All rights reserved.
54              
55             This program is free software; you can redistribute it and/or modify
56             it under the terms of the GNU General Public License as published by
57             the Free Software Foundation; either version 2 of the License, or
58             (at your option) any later version.
59              
60             See the LICENSE file that comes with this distribution for more details.
61              
62             =cut
63              
64             ####################################################################################################
65              
66             sub register_commands
67             {
68 0     0 0   my ($class,$version)=@_;
69 0           my %tmp=(
70             update => [ \&update, undef ],
71             );
72              
73 0           return { 'domain' => \%tmp };
74             }
75              
76 0     0 0   sub capabilities_add { return ('domain_update','sync',['set']); }
77              
78             ####################################################################################################
79              
80             ############ Transform commands
81              
82             sub update
83             {
84 0     0 0   my ($epp,$domain,$todo)=@_;
85 0           my $mes=$epp->message();
86              
87 0           my $sync=$todo->set('sync');
88 0 0 0       return unless (defined($sync) && $sync);
89              
90 0           my $date;
91 0 0         if (ref($sync))
92             {
93 0           Net::DRI::Util::check_isa($sync,'DateTime');
94 0           $date=$sync->strftime('--%m-%d');
95             } else
96             {
97 0 0         Net::DRI::Exception::usererr_invalid_parameters('Sync date must be of type XML Schema gMonthDay') unless ($sync=~m/^(?:--)?(\d{2}-\d{2})$/);
98 0           $date='--'.$1;
99             }
100              
101 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            
102              
103 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"');
104 0           $mes->command_extension($eid,['sync:expMonthDay',$date]);
105 0           return;
106             }
107              
108             ####################################################################################################
109             1;