[freeside-commits] branch master updated. e3c22ef5216a090529e99209409a9cc6ff11a1d3

Ivan ivan at 420.am
Mon Jul 24 23:59:53 PDT 2017


The branch, master has been updated
       via  e3c22ef5216a090529e99209409a9cc6ff11a1d3 (commit)
      from  e6968c64eb7a29323d09e32de729e8c0731731a8 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit e3c22ef5216a090529e99209409a9cc6ff11a1d3
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Jul 24 23:59:52 2017 -0700

    new backoffice API call customer_list_svcs

diff --git a/FS/FS/API.pm b/FS/FS/API.pm
index 6ca2b55..fd3793d 100644
--- a/FS/FS/API.pm
+++ b/FS/FS/API.pm
@@ -537,6 +537,41 @@ sub customer_info {
   $cust_main->API_getinfo;
 }
 
+=item customer_list_svcs OPTION => VALUE, ...
+
+Returns customer service information.  Takes a list of keys and values as
+parameters with the following keys: custnum, secret
+
+=cut
+
+sub customer_list_svcs {
+  my( $class, %opt ) = @_;
+  return _shared_secret_error() unless _check_shared_secret($opt{secret});
+
+  my $cust_main = qsearchs('cust_main', { 'custnum' => $opt{custnum} })
+    or return { 'error' => 'Unknown custnum' };
+
+  #$cust_main->API_list_svcs;
+
+  #false laziness w/ClientAPI/list_svcs
+
+  my @cust_svc = ();
+  #my @cust_pkg_usage = ();
+  #foreach my $cust_pkg ( $p->{'ncancelled'} 
+  #                       ? $cust_main->ncancelled_pkgs
+  #                       : $cust_main->unsuspended_pkgs ) {
+  foreach my $cust_pkg ( $cust_main->all_pkgs ) {
+    #next if $pkgnum && $cust_pkg->pkgnum != $pkgnum;
+    push @cust_svc, @{[ $cust_pkg->cust_svc ]}; #@{[ ]} to force array context
+    #push @cust_pkg_usage, $cust_pkg->cust_pkg_usage;
+  }
+
+  return {
+    'cust_svc' => [ map $_->API_getinfo, @cust_svc ],
+  };
+
+}
+
 =item location_info
 
 Returns location specific information for the customer. Takes a list of keys
diff --git a/FS/FS/cust_svc.pm b/FS/FS/cust_svc.pm
index 08183b4..4aa7504 100644
--- a/FS/FS/cust_svc.pm
+++ b/FS/FS/cust_svc.pm
@@ -1197,7 +1197,7 @@ sub API_getinfo {
   my $self = shift;
   my $svc_x = $self->svc_x;
  +{ ( map { $_=>$self->$_ } $self->fields ),
-    ( map { $svc_x=>$svc_x->$_ } $svc_x->fields ),
+    ( map { $_=>$svc_x->$_ } $svc_x->fields ),
   };
 }
 
diff --git a/bin/xmlrpc-customer_list_svcs b/bin/xmlrpc-customer_list_svcs
new file mode 100755
index 0000000..cdfb51e
--- /dev/null
+++ b/bin/xmlrpc-customer_list_svcs
@@ -0,0 +1,26 @@
+#!/usr/bin/perl
+
+use strict;
+use Frontier::Client;
+use Data::Dumper;
+
+my $uri = new URI 'http://localhost:8008/';
+
+my $server = new Frontier::Client ( 'url' => $uri );
+
+my $result = $server->call(
+  'FS.API.customer_list_svcs',
+    'secret'  => 'sharingiscaring',
+    'custnum' => 181318,
+);
+
+#die $result->{'error'} if $result->{'error'};
+
+#print Dumper($result);
+
+foreach my $cust_svc ( @{ $result->{'cust_svc'} } ) {
+  #print $cust_svc->{mac_addr}."\n" if exists $cust_svc->{mac_addr};
+  print $cust_svc->{circuit_id}."\n" if exists $cust_svc->{circuit_id};
+}
+
+1;

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/API.pm                                       |   35 ++++++++++++++++++++
 FS/FS/cust_svc.pm                                  |    2 +-
 ...pc-insert_payment => xmlrpc-customer_list_svcs} |   14 ++++----
 3 files changed, 43 insertions(+), 8 deletions(-)
 copy bin/{xmlrpc-insert_payment => xmlrpc-customer_list_svcs} (55%)




More information about the freeside-commits mailing list