File Coverage

blib/lib/WebService/Hexonet/Connector/ResponseTemplate.pm
Criterion Covered Total %
statement 56 56 100.0
branch 10 10 100.0
condition 5 6 83.3
subroutine 17 17 100.0
pod 11 11 100.0
total 99 100 99.0


line stmt bran cond sub pod time code
1             package WebService::Hexonet::Connector::ResponseTemplate;
2              
3 1     1   751 use 5.026_000;
  1         5  
4 1     1   6 use strict;
  1         2  
  1         21  
5 1     1   5 use warnings;
  1         2  
  1         34  
6 1     1   668 use WebService::Hexonet::Connector::ResponseParser;
  1         3  
  1         32  
7 1     1   699 use WebService::Hexonet::Connector::ResponseTemplateManager;
  1         2  
  1         37  
8              
9 1     1   7 use version 0.9917; our $VERSION = version->declare('v2.9.1');
  1         16  
  1         6  
10              
11             my $rtm = WebService::Hexonet::Connector::ResponseTemplateManager->getInstance();
12              
13              
14             sub new {
15 110     110 1 6001 my ( $class, $raw ) = @_;
16 110         244 my $self = {};
17 110 100 100     667 if ( !defined $raw || length $raw == 0 ) {
18 11         24 $raw = "[RESPONSE]\r\nCODE=423\r\nDESCRIPTION=Empty API response. Probably unreachable API end point {CONNECTION_URL}\r\nEOF\r\n";
19             }
20 110         303 $self->{raw} = $raw;
21 110         415 $self->{hash} = WebService::Hexonet::Connector::ResponseParser::parse($raw);
22 110 100 66     603 if ( !defined $self->{hash}->{'DESCRIPTION'} || !defined $self->{hash}->{'CODE'} ) {
23 1         6 $self->{raw} = $rtm->getTemplate('invalid')->getPlain();
24 1         5 $self->{hash} = WebService::Hexonet::Connector::ResponseParser::parse( $self->{raw} );
25             }
26 110         509 return bless $self, $class;
27             }
28              
29              
30             sub getCode {
31 3     3 1 19 my $self = shift;
32 3         18 return ( $self->{hash}->{CODE} + 0 );
33             }
34              
35              
36             sub getDescription {
37 7     7 1 28 my $self = shift;
38 7         48 return $self->{hash}->{DESCRIPTION};
39             }
40              
41              
42             sub getPlain {
43 32     32 1 162 my $self = shift;
44 32         167 return $self->{raw};
45             }
46              
47              
48             sub getQueuetime {
49 2     2 1 18 my $self = shift;
50 2 100       8 if ( defined $self->{hash}->{QUEUETIME} ) {
51 1         9 return ( $self->{hash}->{QUEUETIME} + 0.00 );
52             }
53 1         5 return 0.00;
54             }
55              
56              
57             sub getHash {
58 63     63 1 192 my $self = shift;
59 63         197 return $self->{hash};
60             }
61              
62              
63             sub getRuntime {
64 2     2 1 15 my $self = shift;
65 2 100       7 if ( defined $self->{hash}->{RUNTIME} ) {
66 1         8 return ( $self->{hash}->{RUNTIME} + 0.00 );
67             }
68 1         5 return 0.00;
69             }
70              
71              
72             sub isError {
73 2     2 1 2111 my $self = shift;
74 2         10 my $first = substr $self->{hash}->{CODE}, 0, 1;
75 2         13 return ( $first eq '5' );
76             }
77              
78              
79             sub isSuccess {
80 20     20 1 11895 my $self = shift;
81 20         108 my $first = substr $self->{hash}->{CODE}, 0, 1;
82 20         141 return ( $first eq '2' );
83             }
84              
85              
86             sub isTmpError {
87 1     1 1 1495 my $self = shift;
88 1         5 my $first = substr $self->{hash}->{CODE}, 0, 1;
89 1         8 return ( $first eq '4' );
90             }
91              
92              
93             sub isPending {
94 2     2 1 14 my $self = shift;
95 2 100       8 if ( defined $self->{hash}->{PENDING} ) {
96 1         7 return int( $self->{hash}->{PENDING} );
97             }
98 1         6 return 0;
99             }
100              
101             1;
102              
103             __END__