From e17bd439a4675efd11324c8efa2cc7a3e2bbcb5f Mon Sep 17 00:00:00 2001
From: Ivan Kohler
Date: Wed, 13 Sep 2017 14:40:43 -0700
Subject: [PATCH] fiber and DSL http exports, RT#75932
---
FS/FS/part_export/acct_http.pm | 14 +++++--
FS/FS/part_export/broadband_http.pm | 9 ++---
FS/FS/part_export/dsl_http.pm | 72 ++++++++++++++++++++++++++++++++++++
FS/FS/part_export/fiber_http.pm | 73 +++++++++++++++++++++++++++++++++++++
FS/FS/part_export/http.pm | 17 ++++++---
5 files changed, 170 insertions(+), 15 deletions(-)
create mode 100644 FS/FS/part_export/dsl_http.pm
create mode 100644 FS/FS/part_export/fiber_http.pm
diff --git a/FS/FS/part_export/acct_http.pm b/FS/FS/part_export/acct_http.pm
index 414350bba..b84e008b9 100644
--- a/FS/FS/part_export/acct_http.pm
+++ b/FS/FS/part_export/acct_http.pm
@@ -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,
-Crypt::SSLeay
-or IO::Socket::SSL
-is required.
+modification and deletion.
+Each "Data" option takes a list of name value pairs on successive
+lines.
+
- name is an unquoted, literal string without whitespace.
+- value 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'.
+If "Success Regexp" is specified, the response from the server will be
+tested against it to determine if the export succeeded.
END
);
diff --git a/FS/FS/part_export/broadband_http.pm b/FS/FS/part_export/broadband_http.pm
index 097ff34c3..cc1e45071 100644
--- a/FS/FS/part_export/broadband_http.pm
+++ b/FS/FS/part_export/broadband_http.pm
@@ -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'
-Send an HTTP or HTTPS GET or POST to the specified URL on account addition,
-modification and deletion. For HTTPS support,
-Crypt::SSLeay
-or IO::Socket::SSL
-is required.
+Send an HTTP or HTTPS GET or POST to the specified URL on wireless broadband service addition,
+modification and deletion.
Each "Data" option takes a list of name value pairs on successive
lines.
- name is an unquoted, literal string without whitespace.
diff --git a/FS/FS/part_export/dsl_http.pm b/FS/FS/part_export/dsl_http.pm
new file mode 100644
index 000000000..ac61ec88d
--- /dev/null
+++ b/FS/FS/part_export/dsl_http.pm
@@ -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.
+Each "Data" option takes a list of name value pairs on successive
+lines.
+
- name is an unquoted, literal string without whitespace.
+- value 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'.
+If "Success Regexp" is specified, the response from the server will be
+tested against it to determine if the export succeeded.
+END
+);
+
+1;
diff --git a/FS/FS/part_export/fiber_http.pm b/FS/FS/part_export/fiber_http.pm
new file mode 100644
index 000000000..38b23c44e
--- /dev/null
+++ b/FS/FS/part_export/fiber_http.pm
@@ -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.
+Each "Data" option takes a list of name value pairs on successive
+lines.
+
- name is an unquoted, literal string without whitespace.
+- value 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'.
+If "Success Regexp" is specified, the response from the server will be
+tested against it to determine if the export succeeded.
+END
+);
+
+1;
+
diff --git a/FS/FS/part_export/http.pm b/FS/FS/part_export/http.pm
index 42a35cb07..43ccfc525 100644
--- a/FS/FS/part_export/http.pm
+++ b/FS/FS/part_export/http.pm
@@ -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,
-Crypt::SSLeay
-or IO::Socket::SSL
-is required.
+Send an HTTP or HTTPS GET or POST to the specified URL on domain addition,
+modification and deletion.
+Each "Data" option takes a list of name value pairs on successive
+lines.
+
- name is an unquoted, literal string without whitespace.
+- value 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'.
+If "Success Regexp" is specified, the response from the server will be
+tested against it to determine if the export succeeded.
END
);
--
2.11.0