fiber and DSL http exports, RT#75932
authorIvan Kohler <ivan@freeside.biz>
Wed, 13 Sep 2017 21:40:47 +0000 (14:40 -0700)
committerIvan Kohler <ivan@freeside.biz>
Wed, 13 Sep 2017 21:40:47 +0000 (14:40 -0700)
FS/FS/part_export/acct_http.pm
FS/FS/part_export/broadband_http.pm
FS/FS/part_export/dsl_http.pm [new file with mode: 0644]
FS/FS/part_export/fiber_http.pm [new file with mode: 0644]
FS/FS/part_export/http.pm

index 414350b..b84e008 100644 (file)
@@ -69,10 +69,16 @@ tie %options, 'Tie::IxHash',
   'no_machine' => 1,
   'notes'   => <<'END'
 Send an HTTP or HTTPS GET or POST to the specified URL on account addition,
-modification and deletion.  For HTTPS support,
-<a href="http://search.cpan.org/dist/Crypt-SSLeay">Crypt::SSLeay</a>
-or <a href="http://search.cpan.org/dist/IO-Socket-SSL">IO::Socket::SSL</a>
-is required.
+modification and deletion.
+<p>Each "Data" option takes a list of <i>name value</i> pairs on successive 
+lines.
+<ul><li><i>name</i> is an unquoted, literal string without whitespace.</li>
+<li><i>value</i> is a Perl expression that will be evaluated.  If it's a 
+literal string, it must be quoted.  This expression has access to the
+svc_acct object as '$svc_x' (or '$new' and '$old' in "Replace Data") 
+and the customer record as '$cust_main'.</li></ul>
+If "Success Regexp" is specified, the response from the server will be
+tested against it to determine if the export succeeded.</p>
 END
 );
 
index 097ff34..cc1e450 100644 (file)
@@ -58,15 +58,12 @@ tie %options, 'Tie::IxHash',
 
 %info = (
   'svc'     => 'svc_broadband',
-  'desc'    => 'Send an HTTP or HTTPS GET or POST request, for accounts.',
+  'desc'    => 'Send an HTTP or HTTPS GET or POST request, for wireless broadband services.',
   'options' => \%options,
   'no_machine' => 1,
   'notes'   => <<'END'
-<p>Send an HTTP or HTTPS GET or POST to the specified URL on account addition,
-modification and deletion.  For HTTPS support,
-<a href="http://search.cpan.org/dist/Crypt-SSLeay">Crypt::SSLeay</a>
-or <a href="http://search.cpan.org/dist/IO-Socket-SSL">IO::Socket::SSL</a>
-is required.</p>
+<p>Send an HTTP or HTTPS GET or POST to the specified URL on wireless broadband service addition,
+modification and deletion.
 <p>Each "Data" option takes a list of <i>name value</i> pairs on successive 
 lines.
 <ul><li><i>name</i> is an unquoted, literal string without whitespace.</li>
diff --git a/FS/FS/part_export/dsl_http.pm b/FS/FS/part_export/dsl_http.pm
new file mode 100644 (file)
index 0000000..ac61ec8
--- /dev/null
@@ -0,0 +1,72 @@
+package FS::part_export::dsl_http;
+use base qw( FS::part_export::http );
+
+use Tie::IxHash;
+
+tie our %options, 'Tie::IxHash',
+  'method' => { label   =>'Method',
+                type    =>'select',
+                #options =>[qw(POST GET)],
+                options =>[qw(POST)],
+                default =>'POST' },
+  'url'    => { label   => 'URL', default => 'http://', },
+  'ssl_no_verify' => { label => 'Skip SSL certificate validation',
+                       type  => 'checkbox',
+                     },
+  'insert_data' => {
+    label   => 'Insert data',
+    type    => 'textarea',
+    default => join("\n",
+    ),
+  },
+  'delete_data' => {
+    label   => 'Delete data',
+    type    => 'textarea',
+    default => join("\n",
+    ),
+  },
+  'replace_data' => {
+    label   => 'Replace data',
+    type    => 'textarea',
+    default => join("\n",
+    ),
+  },
+  'suspend_data' => {
+    label   => 'Suspend data',
+    type    => 'textarea',
+    default => join("\n",
+    ),
+  },
+  'unsuspend_data' => {
+    label   => 'Unsuspend data',
+    type    => 'textarea',
+    default => join("\n",
+    ),
+  },
+  'success_regexp' => {
+    label  => 'Success Regexp',
+    default => '',
+  },
+;
+
+%info = (
+  'svc'     => 'svc_dsl',
+  'desc'    => 'Send an HTTP or HTTPS GET or POST request, for DSL services.',
+  'options' => \%options,
+  'no_machine' => 1,
+  'notes'   => <<'END'
+Send an HTTP or HTTPS GET or POST to the specified URL on account addition,
+modification and deletion.
+<p>Each "Data" option takes a list of <i>name value</i> pairs on successive 
+lines.
+<ul><li><i>name</i> is an unquoted, literal string without whitespace.</li>
+<li><i>value</i> is a Perl expression that will be evaluated.  If it's a 
+literal string, it must be quoted.  This expression has access to the
+svc_dsl object as '$svc_x' (or '$new' and '$old' in "Replace Data") 
+and the customer record as '$cust_main'.</li></ul>
+If "Success Regexp" is specified, the response from the server will be
+tested against it to determine if the export succeeded.</p>
+END
+);
+
+1;
diff --git a/FS/FS/part_export/fiber_http.pm b/FS/FS/part_export/fiber_http.pm
new file mode 100644 (file)
index 0000000..38b23c4
--- /dev/null
@@ -0,0 +1,73 @@
+package FS::part_export::fiber_http;
+use base qw( FS::part_export::http );
+
+use Tie::IxHash;
+
+tie our %options, 'Tie::IxHash',
+  'method' => { label   =>'Method',
+                type    =>'select',
+                #options =>[qw(POST GET)],
+                options =>[qw(POST)],
+                default =>'POST' },
+  'url'    => { label   => 'URL', default => 'http://', },
+  'ssl_no_verify' => { label => 'Skip SSL certificate validation',
+                       type  => 'checkbox',
+                     },
+  'insert_data' => {
+    label   => 'Insert data',
+    type    => 'textarea',
+    default => join("\n",
+    ),
+  },
+  'delete_data' => {
+    label   => 'Delete data',
+    type    => 'textarea',
+    default => join("\n",
+    ),
+  },
+  'replace_data' => {
+    label   => 'Replace data',
+    type    => 'textarea',
+    default => join("\n",
+    ),
+  },
+  'suspend_data' => {
+    label   => 'Suspend data',
+    type    => 'textarea',
+    default => join("\n",
+    ),
+  },
+  'unsuspend_data' => {
+    label   => 'Unsuspend data',
+    type    => 'textarea',
+    default => join("\n",
+    ),
+  },
+  'success_regexp' => {
+    label  => 'Success Regexp',
+    default => '',
+  },
+;
+
+%info = (
+  'svc'     => 'svc_fiber',
+  'desc'    => 'Send an HTTP or HTTPS GET or POST request, for FTTx services.',
+  'options' => \%options,
+  'no_machine' => 1,
+  'notes'   => <<'END'
+Send an HTTP or HTTPS GET or POST to the specified URL on account addition,
+modification and deletion.
+<p>Each "Data" option takes a list of <i>name value</i> pairs on successive 
+lines.
+<ul><li><i>name</i> is an unquoted, literal string without whitespace.</li>
+<li><i>value</i> is a Perl expression that will be evaluated.  If it's a 
+literal string, it must be quoted.  This expression has access to the
+svc_fiber object as '$svc_x' (or '$new' and '$old' in "Replace Data") 
+and the customer record as '$cust_main'.</li></ul>
+If "Success Regexp" is specified, the response from the server will be
+tested against it to determine if the export succeeded.</p>
+END
+);
+
+1;
+
index 42a35cb..43ccfc5 100644 (file)
@@ -59,14 +59,21 @@ tie %options, 'Tie::IxHash',
 
 %info = (
   'svc'     => 'svc_domain',
-  'desc'    => 'Send an HTTP or HTTPS GET or POST request',
+  'desc'    => 'Send an HTTP or HTTPS GET or POST request, for domains1',
   'options' => \%options,
   'no_machine' => 1,
   'notes'   => <<'END'
-Send an HTTP or HTTPS GET or POST to the specified URL.  For HTTPS support,
-<a href="http://search.cpan.org/dist/Crypt-SSLeay">Crypt::SSLeay</a>
-or <a href="http://search.cpan.org/dist/IO-Socket-SSL">IO::Socket::SSL</a>
-is required.
+Send an HTTP or HTTPS GET or POST to the specified URL on domain addition,
+modification and deletion.
+<p>Each "Data" option takes a list of <i>name value</i> pairs on successive 
+lines.
+<ul><li><i>name</i> is an unquoted, literal string without whitespace.</li>
+<li><i>value</i> is a Perl expression that will be evaluated.  If it's a 
+literal string, it must be quoted.  This expression has access to the
+svc_domain object as '$svc_x' (or '$new' and '$old' in "Replace Data") 
+and the customer record as '$cust_main'.</li></ul>
+If "Success Regexp" is specified, the response from the server will be
+tested against it to determine if the export succeeded.</p>
 END
 );