This commit was generated by cvs2svn to compensate for changes in r4407,
[freeside.git] / fs_selfservice / FS-SelfService / SelfService.pm
index ae6d376..ad90933 100644 (file)
@@ -1,7 +1,7 @@
 package FS::SelfService;
 
 use strict;
-use vars qw($VERSION @ISA @EXPORT_OK $socket %autoload $tag);
+use vars qw($VERSION @ISA @EXPORT_OK $dir $socket %autoload $tag);
 use Exporter;
 use Socket;
 use FileHandle;
@@ -13,7 +13,8 @@ $VERSION = '0.03';
 
 @ISA = qw( Exporter );
 
-$socket =  "/usr/local/freeside/selfservice_socket";
+$dir = "/usr/local/freeside";
+$socket =  "$dir/selfservice_socket";
 $socket .= '.'.$tag if defined $tag && length($tag);
 
 #maybe should ask ClientAPI for this list
@@ -30,16 +31,19 @@ $socket .= '.'.$tag if defined $tag && length($tag);
   'cancel'               => 'MyAccount/cancel',        #add to ss cgi!
   'payment_info'         => 'MyAccount/payment_info',
   'process_payment'      => 'MyAccount/process_payment',
+  'process_prepay'       => 'MyAccount/process_prepay',
   'list_pkgs'            => 'MyAccount/list_pkgs',     #add to ss cgi!
   'order_pkg'            => 'MyAccount/order_pkg',     #add to ss cgi!
   'cancel_pkg'           => 'MyAccount/cancel_pkg',    #add to ss cgi!
   'charge'               => 'MyAccount/charge',        #?
   'part_svc_info'        => 'MyAccount/part_svc_info',
   'provision_acct'       => 'MyAccount/provision_acct',
+  'provision_external'   => 'MyAccount/provision_external',
   'unprovision_svc'      => 'MyAccount/unprovision_svc',
   'signup_info'          => 'Signup/signup_info',
   'new_customer'         => 'Signup/new_customer',
   'agent_login'          => 'Agent/agent_login',
+  'agent_logout'         => 'Agent/agent_logout',
   'agent_info'           => 'Agent/agent_info',
   'agent_list_customers' => 'Agent/agent_list_customers',
 );
@@ -55,6 +59,11 @@ $ENV{'BASH_ENV'} = '';
 my $freeside_uid = scalar(getpwnam('freeside'));
 die "not running as the freeside user\n" if $> != $freeside_uid;
 
+-e $dir or die "FATAL: $dir doesn't exist!";
+-d $dir or die "FATAL: $dir isn't a directory!";
+-r $dir or die "FATAL: Can't read $dir as freeside user!";
+-x $dir or die "FATAL: $dir not searchable (executable) as freeside user!";
+
 foreach my $autoload ( keys %autoload ) {
 
   my $eval =
@@ -79,7 +88,7 @@ foreach my $autoload ( keys %autoload ) {
 sub simple_packet {
   my $packet = shift;
   socket(SOCK, PF_UNIX, SOCK_STREAM, 0) or die "socket: $!";
-  connect(SOCK, sockaddr_un($socket)) or die "connect: $!";
+  connect(SOCK, sockaddr_un($socket)) or die "connect to $socket: $!";
   nstore_fd($packet, \*SOCK) or die "can't send packet: $!";
   SOCK->flush;
 
@@ -154,6 +163,10 @@ FS::SelfService - Freeside self-service API
                         'payby'            => $payby,
                         'payinfo'          => $payinfo,
                         'paycvv'           => $paycvv,
+                        'paystart_month'   => $paystart_month
+                        'paystart_year'    => $paystart_year,
+                        'payissue'         => $payissue,
+                        'payip'            => $payip
                         'paydate'          => $paydate,
                         'payname'          => $payname,
                         'invoicing_list'   => $invoicing_list,