import torrus 1.0.9
[freeside.git] / FS / FS / part_export / domreg_opensrs.pm
index dc9f923..76f0059 100644 (file)
@@ -1,6 +1,6 @@
 package FS::part_export::domreg_opensrs;
 
-use vars qw(@ISA %info %options $conf);
+use vars qw(@ISA %info %options $conf $me $DEBUG);
 use Tie::IxHash;
 use DateTime;
 use FS::Record qw(qsearchs qsearch);
@@ -39,6 +39,8 @@ gateway when setting up this export.
 =cut
 
 @ISA = qw(FS::part_export::null);
+$me = '[' .  __PACKAGE__ . ']';
+$DEBUG = 0;
 
 my @tldlist = qw/com net org biz info name mobi at be ca cc ch cn de dk es eu fr it mx nl tv uk us/;
 
@@ -249,15 +251,14 @@ sub _export_insert {
 
 sub _export_insert_on_payment {
   my( $self, $svc_domain ) = ( shift, shift );
+  warn "$me:_export_insert_on_payment called\n" if $DEBUG;
   return '' unless $self->option('wait_for_pay');
 
   my $queue = new FS::queue {
     'svcnum' => $svc_domain->svcnum,
     'job'    => 'FS::part_export::domreg_opensrs::renew_through',
   };
-  $queue->insert( $self, $svc_domain->svcnum ); #_export_insert with 'R' action?
-
-  return '';
+  $queue->insert( $self, $svc_domain ); #_export_insert with 'R' action?
 }
 
 ## Domain registration exports do nothing on replace.  Mainly because we haven't decided what they should do.
@@ -378,6 +379,8 @@ Like most export functions, returns an error message on failure or undef on succ
 sub register {
   my ( $self, $svc_domain, $years ) = @_;
 
+  $years = 1 unless $years; #default to 1 year since we don't seem to pass it
+
   return "Net::OpenSRS does not support period other than 1 year" if $years != 1;
 
   eval "use Net::OpenSRS;";
@@ -395,10 +398,11 @@ sub register {
 
   my $srs = $self->get_srs;
 
-  my $cookie = $srs->get_cookie( $self->option('masterdomain') );
-  if (!$cookie) {
-     return "Unable to get cookie at OpenSRS: " . $srs->last_response();
-  }
+#  cookie not required for registration
+#  my $cookie = $srs->get_cookie( $self->option('masterdomain') );
+#  if (!$cookie) {
+#     return "Unable to get cookie at OpenSRS: " . $srs->last_response();
+#  }
 
 #  return "Domain registration not enabled" if !$self->option('register');
   return $srs->last_response() if !$srs->register_domain( $svc_domain->domain, $c);
@@ -478,33 +482,34 @@ sub renew {
 Attempts to renew the domain through the specified date.  If no date is
 provided it is gleaned from the associated cust_pkg bill date
 
-Like most export functions, returns an error message on failure or undef on success.
+Like some export functions, dies on failure or returns undef on success.
+It is always called from the queue.
 
 =cut
 
 sub renew_through {
   my ( $self, $svc_domain, $date ) = @_;
 
+  warn "$me: renew_through called\n" if $DEBUG;
   eval "use Net::OpenSRS;";
-  return $@ if $@;
+  die $@ if $@;
 
   unless ( $date ) {
     my $cust_pkg = $svc_domain->cust_svc->cust_pkg;
-    return "Can't renew: no date specified and domain is not in a package."
+    die "Can't renew: no date specified and domain is not in a package."
       unless $cust_pkg;
     $date = $cust_pkg->bill;
   }
 
   my $err = $self->is_supported_domain( $svc_domain );
-  return $err if $err;
-
-  my $srs = $self->get_srs;
+  die $err if $err;
 
-  $rv = $srs->check_transfer($svc_domain->domain);
-  return "Domain ". $svc_domain->domain. " is not renewable"
+  warn "$me: checking status\n" if $DEBUG;
+  my $rv = $self->get_status($svc_domain);
+  die "Domain ". $svc_domain->domain. " is not renewable"
     unless $rv->{expdate};
 
-  return "Can't parse expiration date for ". $svc_domain->domain
+  die "Can't parse expiration date for ". $svc_domain->domain
     unless $rv->{expdate} =~ /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/;
 
   my ($year,$month,$day,$hour,$minute,$second) = ($1,$2,$3,$4,$5,$6);
@@ -527,10 +532,14 @@ sub renew_through {
     $years++;
     $exp->add( 'years' => 1 );
 
-    return "Can't renew ". $svc_domain->domain. " for more than 10 years."
+    die "Can't renew ". $svc_domain->domain. " for more than 10 years."
       if $years > 10; #no infinite loop
   }
 
+  return '' unless $years;
+
+  warn "$me: renewing ". $svc_domain->domain. " for $years years\n" if $DEBUG;
+  my $srs = $self->get_srs;
   $rv = $srs->make_request(
     {
       action     => 'renew',
@@ -544,7 +553,7 @@ sub renew_through {
       }
     }
   );
-  return $rv->{response_text} unless $rv->{is_success};
+  die $rv->{response_text} unless $rv->{is_success};
 
   return ''; # Should only get here if renewal succeeded
 }