Merge branch 'patch-1' of https://github.com/gjones2/Freeside
[freeside.git] / FS / FS / part_export / broadband_http.pm
1 package FS::part_export::broadband_http;
2
3 use vars qw( @ISA %info );
4 use FS::part_export::http;
5 use Tie::IxHash;
6
7 @ISA = qw( FS::part_export::http );
8
9 tie %options, 'Tie::IxHash',
10   'method' => { label   =>'Method',
11                 type    =>'select',
12                 #options =>[qw(POST GET)],
13                 options =>[qw(POST)],
14                 default =>'POST' },
15   'url'    => { label   => 'URL', default => 'http://', },
16   'insert_data' => {
17     label   => 'Insert data',
18     type    => 'textarea',
19     default => join("\n",
20       "action 'add'",
21       "address \$svc_x->ip_addr",
22       "name \$cust_main->first.' '.\$cust_main->last",
23     ),
24   },
25   'delete_data' => {
26     label   => 'Delete data',
27     type    => 'textarea',
28     default => join("\n",
29       "action  'remove'",
30       "address \$svc_x->ip_addr",
31     ),
32   },
33   'replace_data' => {
34     label   => 'Replace data',
35     type    => 'textarea',
36     default => '',
37   },
38   'suspend_data' => {
39     label   => 'Suspend data',
40     type    => 'textarea',
41     default => join("\n",
42     ),
43   },
44   'unsuspend_data' => {
45     label   => 'Unsuspend data',
46     type    => 'textarea',
47     default => join("\n",
48     ),
49   },
50   'success_regexp' => {
51     label   => 'Success Regexp',
52     default => '',
53   },
54 ;
55
56 %info = (
57   'svc'     => 'svc_broadband',
58   'desc'    => 'Send an HTTP or HTTPS GET or POST request, for accounts.',
59   'options' => \%options,
60   'no_machine' => 1,
61   'notes'   => <<'END'
62 <p>Send an HTTP or HTTPS GET or POST to the specified URL on account addition,
63 modification and deletion.  For HTTPS support,
64 <a href="http://search.cpan.org/dist/Crypt-SSLeay">Crypt::SSLeay</a>
65 or <a href="http://search.cpan.org/dist/IO-Socket-SSL">IO::Socket::SSL</a>
66 is required.</p>
67 <p>Each "Data" option takes a list of <i>name value</i> pairs on successive 
68 lines.
69 <ul><li><i>name</i> is an unquoted, literal string without whitespace.</li>
70 <li><i>value</i> is a Perl expression that will be evaluated.  If it's a 
71 literal string, it must be quoted.  This expression has access to the
72 svc_broadband object as '$svc_x' (or '$new' and '$old' in "Replace Data") 
73 and the customer record as '$cust_main'.</li></ul>
74 If "Success Regexp" is specified, the response from the server will be
75 tested against it to determine if the export succeeded.</p>
76 END
77 );
78
79 1;