File Coverage

blib/lib/Net/DRI/DRD/VeriSign/NameStore.pm
Criterion Covered Total %
statement 20 45 44.4
branch 1 12 8.3
condition n/a
subroutine 8 16 50.0
pod 4 12 33.3
total 33 85 38.8


line stmt bran cond sub pod time code
1             ## Domain Registry Interface, VeriSign Registry Driver for .CC .TV .BZ .JOBS
2             ##
3             ## Copyright (c) 2005-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::DRD::VeriSign::NameStore;
16              
17 5     5   2359 use strict;
  5         6  
  5         111  
18 5     5   15 use warnings;
  5         5  
  5         98  
19              
20 5     5   15 use base qw/Net::DRI::DRD/;
  5         6  
  5         2024  
21              
22 5     5   24 use DateTime::Duration;
  5         6  
  5         1777  
23              
24             =pod
25              
26             =head1 NAME
27              
28             Net::DRI::DRD::VeriSign::NameStore - VeriSign .CC/.TV/.BZ/.JOBS Registry driver 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) 2005-2013,2016 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 new
67             {
68 4     4 0 6 my $class=shift;
69 4         22 my $self=$class->SUPER::new(@_);
70 4         17 $self->{info}->{check_limit}=5;
71 4         7 return $self;
72             }
73              
74 0     0 1 0 sub periods { return map { DateTime::Duration->new(years => $_) } (1..10); }
  0         0  
75 4     4 1 10 sub name { return 'VeriSign::NameStore'; }
76 4     4 1 10 sub tlds { return qw/cc tv bz jobs/; } ## If this changes, VeriSign/NameStore will need to be updated also
77 0     0 1 0 sub object_types { return qw/domain contact ns/; }
78 0     0 0 0 sub profile_types { return qw/epp whois/; }
79              
80             sub transport_protocol_default
81             {
82 4     4 0 5 my ($self,$type)=@_;
83              
84 4 50       33 return ('Net::DRI::Transport::Socket',{remote_host=>'otessl.verisign-grs.com', remote_port=>700},'Net::DRI::Protocol::EPP::Extensions::VeriSign::Platforms::NameStore',{}) if $type eq 'epp';
85 0 0         return ('Net::DRI::Transport::Socket',{remote_host=>'whois.verisign-grs.com'},'Net::DRI::Protocol::Whois',{}) if $type eq 'whois';
86 0           return;
87             }
88              
89             ####################################################################################################
90              
91             sub verify_name_domain
92             {
93 0     0 0   my ($self,$ndr,$domain,$op)=@_;
94 0           return $self->_verify_name_rules($domain,$op,{check_name => 1,
95             my_tld => 1,
96             icann_reserved => 1,
97             });
98             }
99              
100             ## We can not start a transfer, if domain name has already been transfered less than 15 days ago.
101             sub verify_duration_transfer
102             {
103 0     0 0   my ($self,$ndr,$duration,$domain,$op)=@_;
104              
105 0           return $self->_verify_duration_transfer_15days($ndr,$duration,$domain,$op);
106             }
107              
108             ####################################################################################################
109              
110             sub domain_whowas
111             {
112 0     0 0   my ($self,$ndr,$domain,$rd)=@_;
113 0           $self->enforce_domain_name_constraints($ndr,$domain,'whowas');
114              
115 0           my $rc=$ndr->try_restore_from_cache('domain',$domain,'whowas');
116 0 0         if (! defined $rc) { $rc=$ndr->process('domain','whowas',[$domain,$rd]); }
  0            
117 0           return $rc;
118             }
119              
120             sub domain_suggest
121             {
122 0     0 0   my ($self,$ndr,$domain,$rd)=@_;
123 0 0         Net::DRI::Exception::usererr_invalid_parameters('domain_suggestion domain/key must be a string of 2 to 32 characters') unless Net::DRI::Util::xml_is_string($domain,2,32);
124 0 0         $self->enforce_domain_name_constraints($ndr,$domain,'suggestion') unless $domain=~m/\s/; ## if we have a space, then $domain is a list of keywords
125 0           my $rc=$ndr->try_restore_from_cache('domain',$domain,'suggesion');
126 0 0         if (! defined $rc) { $rc=$ndr->process('domain','suggestion',[$domain,$rd]); }
  0            
127 0           return $rc;
128             }
129              
130             sub balance_info
131             {
132 0     0 0   my ($self,$ndr)=@_;
133 0           return $ndr->process('balance','info');
134             }
135              
136             ####################################################################################################
137             1;