diff options
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/part_export/http_status.pm | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/FS/FS/part_export/http_status.pm b/FS/FS/part_export/http_status.pm new file mode 100644 index 0000000..08be3a0 --- /dev/null +++ b/FS/FS/part_export/http_status.pm @@ -0,0 +1,49 @@ +packages FS::part_export::http_status; +use base qw( FS::part_export ); + +use strict; +use warnings; +use LWP::UserAgent; +use HTTP::Request::Common; + +tie my %options, 'Tie::IxHash', + 'url' => { label => 'URL', }, + #'user' => { label => 'Username', default=>'' }, + #'password' => { label => 'Password', default => '' }, +; + +%info = ( + 'svc' => 'svc_dsl', + 'desc' => 'Retrieve status information via HTTP or HTTPS', + 'options' => \%options, + 'notes' => <<'END' +Fields from the service can be substituted in the URL as $field. +END +); + +sub rebless { shift; } + +sub export_getstatus { + my( $self, $svc_x, $htmlref, $hashref ) = @_; + + my $url = $self->option('url'); + { + no strict 'refs'; + ${$_} = $svc_x->getfield($x) foreach $svc_x->fields; + + $url = eval(qq($url)); + } + + my $req = HTTP::Request::Common::GET( $url ); + my $ua = LWP::UserAgent->new; + my $response = $ua->request($req); + + $$htmlref = $response->is_error ? $response->error_as_HTML + : $response->content; + + + #hash data note yet implemented for this status export + +} + +1; |