File Coverage

blib/lib/Net/Azure/NotificationHubs/Response.pm
Criterion Covered Total %
statement 17 23 73.9
branch 0 4 0.0
condition 1 5 20.0
subroutine 6 7 85.7
pod 1 2 50.0
total 25 41 60.9


line stmt bran cond sub pod time code
1             package Net::Azure::NotificationHubs::Response;
2 6     6   38 use strict;
  6         21  
  6         248  
3 6     6   38 use warnings;
  6         13  
  6         316  
4              
5 6     6   4656 use JSON;
  6         76193  
  6         37  
6 6     6   1062 use Carp;
  6         14  
  6         515  
7             use Class::Accessor::Lite (
8 6         56 ro => [qw[status reason headers content success]],
9             new => 0
10 6     6   350 );
  6         807  
11              
12             sub new {
13 1     1 0 3 my ($class, $status, $reason, $headers, $content, $success) = @_;
14 1   50     8 bless {
15             status => $status,
16             reason => $reason,
17             headers => $headers || {},
18             content => $content,
19             success => $success,
20             }, $class;
21             }
22              
23             sub as_hashref {
24 0     0 1   my $self = shift;
25 0 0         return if !$self->success;
26            
27 0           my $type = $self->headers->{'content-type'};
28              
29 0 0 0       if ($type && $type =~ /\Aapplication\/json/) {
30 0           return JSON->new->utf8(1)->decode($self->{content});
31             }
32 0           return;
33             }
34            
35             1;
36              
37             =encoding utf-8
38              
39             =head1 NAME
40              
41             Net::Azure::NotificationHubs::Response - A Response Class for Net::Azure::NotificationHubs
42              
43             =head1 SYNOPSIS
44              
45             use Net::Azure::NotificationHubs::Request;
46             use HTTP::Tiny;
47             my $req = Net::Azure::NotificationHubs::Request->new(GET => 'http://...');
48             $req->agent(HTTP::Tiny->new);
49             my $res = $req->do;
50             my $json_data = $res->as_hashref;
51              
52             =head1 DESCRIPTION
53              
54             Net::Azure::NotificationHubs::Response is a response class for Net::Azure::NotificationHubs.
55              
56             It inherits HTTP::Response.
57              
58             =head1 METHODS
59              
60             =head2 as_hashref
61              
62             my $json_data = $res->as_hashref;
63              
64             Return a content data as hashref when content type is 'application/json'. Otherwise, undef is returned.
65              
66             =head1 LICENSE
67              
68             Copyright (C) ytnobody.
69              
70             This library is free software; you can redistribute it and/or modify
71             it under the same terms as Perl itself.
72              
73             =head1 AUTHOR
74              
75             ytnobody Eytnobody@gmail.comE
76              
77             =cut