summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormark <mark>2012-02-06 22:28:15 +0000
committermark <mark>2012-02-06 22:28:15 +0000
commit2158e6d923efb1207e3c4cea44eceda9b16d497e (patch)
treebae668cbb3a06635ec79803b704ffb050616a545
parentf4330403934b90b73d6585afeda72ca88f9094b6 (diff)
HTTP export for svc_broadband, #16227
-rw-r--r--FS/FS/part_export/broadband_http.pm66
1 files changed, 66 insertions, 0 deletions
diff --git a/FS/FS/part_export/broadband_http.pm b/FS/FS/part_export/broadband_http.pm
new file mode 100644
index 0000000..9edfee5
--- /dev/null
+++ b/FS/FS/part_export/broadband_http.pm
@@ -0,0 +1,66 @@
+package FS::part_export::broadband_http;
+
+use vars qw( @ISA %info );
+use FS::part_export::http;
+use Tie::IxHash;
+
+@ISA = qw( FS::part_export::http );
+
+tie %options, 'Tie::IxHash',
+ 'method' => { label =>'Method',
+ type =>'select',
+ #options =>[qw(POST GET)],
+ options =>[qw(POST)],
+ default =>'POST' },
+ 'url' => { label => 'URL', default => 'http://', },
+ 'insert_data' => {
+ label => 'Insert data',
+ type => 'textarea',
+ default => join("\n",
+ "action 'add'",
+ "address \$svc_x->ip_addr",
+ "name \$cust_main->first.' '.\$cust_main->last",
+ ),
+ },
+ 'delete_data' => {
+ label => 'Delete data',
+ type => 'textarea',
+ default => join("\n",
+ "action 'remove'",
+ "address \$svc_x->ip_addr",
+ ),
+ },
+ 'replace_data' => {
+ label => 'Replace data',
+ type => 'textarea',
+ default => '',
+ },
+ 'success_regexp' => {
+ label => 'Success Regexp',
+ default => '',
+ },
+;
+
+%info = (
+ 'svc' => 'svc_broadband',
+ 'desc' => 'Send an HTTP or HTTPS GET or POST request, for accounts.',
+ 'options' => \%options,
+ '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>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_broadband 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;