projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
71696: OFM Request for additional action on Billing Events [msgclass limit, v4+ only]
[freeside.git]
/
FS
/
FS
/
part_event
/
Action
/
http.pm
diff --git
a/FS/FS/part_event/Action/http.pm
b/FS/FS/part_event/Action/http.pm
index
b8715a7
..
72a345d
100644
(file)
--- a/
FS/FS/part_event/Action/http.pm
+++ b/
FS/FS/part_event/Action/http.pm
@@
-1,12
+1,17
@@
package FS::part_event::Action::http;
package FS::part_event::Action::http;
+use base qw( FS::part_event::Action );
use strict;
use strict;
-use base qw( FS::part_event::Action );
+use vars qw( $me );
+use Data::Dumper;
+use IO::Socket::SSL;
use LWP::UserAgent;
use HTTP::Request::Common;
use LWP::UserAgent;
use HTTP::Request::Common;
-use JSON::XS;
+use
Cpanel::
JSON::XS;
use FS::Misc::DateTime qw( iso8601 );
use FS::Misc::DateTime qw( iso8601 );
+$me = '[FS::part_event::Action::http]';
+
#sub description { 'Send an HTTP or HTTPS GET or POST request'; }
sub description { 'Send an HTTP or HTTPS POST request'; }
#sub description { 'Send an HTTP or HTTPS GET or POST request'; }
sub description { 'Send an HTTP or HTTPS POST request'; }
@@
-37,6
+42,10
@@
sub option_fields {
type => 'textarea',
},
#'response_error_param' => 'Response error parameter',
type => 'textarea',
},
#'response_error_param' => 'Response error parameter',
+ 'debug' => { label => 'Enable debugging',
+ type => 'checkbox',
+ value => 1,
+ },
);
}
);
}
@@
-60,10
+69,17
@@
sub do_action {
( $field, $value );
} split(/\n/, $self->option('content') );
( $field, $value );
} split(/\n/, $self->option('content') );
+ if ( $self->option('debug') ) {
+ warn "[$me] $_: ". $content{$_}. "\n" foreach keys %content;
+ }
+
my $content = encode_json( \%content );
my @lwp_opts = ();
my $content = encode_json( \%content );
my @lwp_opts = ();
- push @lwp_opts, 'ssl_opts'=>{ 'verify_hostname'=>0 }
+ push @lwp_opts, 'ssl_opts' => {
+ verify_hostname => 0,
+ SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE,
+ }
if $self->option('ssl_no_verify');
my $ua = LWP::UserAgent->new(@lwp_opts);
if $self->option('ssl_no_verify');
my $ua = LWP::UserAgent->new(@lwp_opts);
@@
-73,6
+89,9
@@
sub do_action {
Content => $content,
);
Content => $content,
);
+ if ( $self->option('debug') ) {
+ #XXX dump raw request for debugging
+ }
my $response = $ua->request($req);
die $response->status_line if $response->is_error;
my $response = $ua->request($req);
die $response->status_line if $response->is_error;