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   699 use 5.026_000;
  1         3  
4 1     1   6 use strict;
  1         2  
  1         20  
5 1     1   5 use warnings;
  1         2  
  1         33  
6 1     1   713 use WebService::Hexonet::Connector::ResponseParser;
  1         3  
  1         32  
7 1     1   672 use WebService::Hexonet::Connector::ResponseTemplateManager;
  1         3  
  1         48  
8              
9 1     1   8 use version 0.9917; our $VERSION = version->declare('v2.9.0');
  1         16  
  1         6  
10              
11             my $rtm = WebService::Hexonet::Connector::ResponseTemplateManager->getInstance();
12              
13              
14             sub new {
15 111     111 1 6036 my ( $class, $raw ) = @_;
16 111         242 my $self = {};
17 111 100 100     591 if ( !defined $raw || length $raw == 0 ) {
18 11         18 $raw = "[RESPONSE]\r\nCODE=423\r\nDESCRIPTION=Empty API response. Probably unreachable API end point {CONNECTION_URL}\r\nEOF\r\n";
19             }
20 111         346 $self->{raw} = $raw;
21 111         359 $self->{hash} = WebService::Hexonet::Connector::ResponseParser::parse($raw);
22 111 100 66     640 if ( !defined $self->{hash}->{'DESCRIPTION'} || !defined $self->{hash}->{'CODE'} ) {
23 1         6 $self->{raw} = $rtm->getTemplate('invalid')->getPlain();
24 1         6 $self->{hash} = WebService::Hexonet::Connector::ResponseParser::parse( $self->{raw} );
25             }
26 111         542 return bless $self, $class;
27             }
28              
29              
30             sub getCode {
31 3     3 1 13 my $self = shift;
32 3         20 return ( $self->{hash}->{CODE} + 0 );
33             }
34              
35              
36             sub getDescription {
37 7     7 1 29 my $self = shift;
38 7         51 return $self->{hash}->{DESCRIPTION};
39             }
40              
41              
42             sub getPlain {
43 32     32 1 150 my $self = shift;
44 32         172 return $self->{raw};
45             }
46              
47              
48             sub getQueuetime {
49 2     2 1 13 my $self = shift;
50 2 100       9 if ( defined $self->{hash}->{QUEUETIME} ) {
51 1         7 return ( $self->{hash}->{QUEUETIME} + 0.00 );
52             }
53 1         5 return 0.00;
54             }
55              
56              
57             sub getHash {
58 64     64 1 171 my $self = shift;
59 64         207 return $self->{hash};
60             }
61              
62              
63             sub getRuntime {
64 2     2 1 11 my $self = shift;
65 2 100       9 if ( defined $self->{hash}->{RUNTIME} ) {
66 1         8 return ( $self->{hash}->{RUNTIME} + 0.00 );
67             }
68 1         6 return 0.00;
69             }
70              
71              
72             sub isError {
73 2     2 1 1811 my $self = shift;
74 2         9 my $first = substr $self->{hash}->{CODE}, 0, 1;
75 2         14 return ( $first eq '5' );
76             }
77              
78              
79             sub isSuccess {
80 21     21 1 9658 my $self = shift;
81 21         104 my $first = substr $self->{hash}->{CODE}, 0, 1;
82 21         133 return ( $first eq '2' );
83             }
84              
85              
86             sub isTmpError {
87 1     1 1 1512 my $self = shift;
88 1         23 my $first = substr $self->{hash}->{CODE}, 0, 1;
89 1         9 return ( $first eq '4' );
90             }
91              
92              
93             sub isPending {
94 2     2 1 12 my $self = shift;
95 2 100       7 if ( defined $self->{hash}->{PENDING} ) {
96 1         9 return int( $self->{hash}->{PENDING} );
97             }
98 1         5 return 0;
99             }
100              
101             1;
102              
103             __END__