File Coverage

blib/lib/Search/Elasticsearch/Cxn/Async/Simple/AEHTTP.pm
Criterion Covered Total %
statement 12 15 80.0
branch 0 4 0.0
condition n/a
subroutine 4 5 80.0
pod 0 1 0.0
total 16 25 64.0


line stmt bran cond sub pod time code
1             package Search::Elasticsearch::Cxn::Async::Simple::AEHTTP;
2              
3 1     1   25479 use Moo;
  1         24438  
  1         6  
4              
5 1     1   2898 use AnyEvent::HTTP qw(http_request);
  1         68812  
  1         117  
6              
7 1     1   739 use Search::Elasticsearch::Role::Is_Async::Loader ();
  1         4  
  1         30  
8              
9 1     1   6 use namespace::clean;
  1         2  
  1         5  
10              
11             with 'Search::Elasticsearch::Role::Cxn::Async::Simple',
12             'Search::Elasticsearch::Role::Cxn::HTTP',
13             'Search::Elasticsearch::Role::Is_Async';
14              
15              
16             sub perform_request {
17             my ($self, $pars, $cb) = @_;
18              
19             my $uri = $self->build_uri($pars);
20             my $meth = $pars->{method};
21              
22             http_request(
23             $meth => $uri,
24             timeout => $pars->{timeout} || $self->request_timeout,
25             headers => {
26             'Content-Type' => $pars->{mime_type},
27             %{$self->default_headers},
28             },
29             body => $pars->{data},
30             sub {
31             my ($code, $res);
32              
33             eval {
34             ($code, $res) = $self->process_response(
35             $pars,
36             delete($_[1]{Status}),
37             delete($_[1]{Reason}),
38             $_[0],
39             $_[1],
40             );
41             };
42             $cb->($@ ? () : ($code, $res));
43             }
44             );
45              
46             return;
47             }
48              
49             sub error_from_text {
50 0 0   0 0   return 'Timeout' if $_[2] =~ /timed out/;
51 0 0         return 'Cxn' if $_[1] >= 590;
52 0           return 'Request';
53             }
54              
55              
56             1;
57              
58              
59             __END__