line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Web::ComposableRequest::Role::JSON; |
2
|
|
|
|
|
|
|
|
3
|
1
|
|
|
1
|
|
501
|
use namespace::autoclean; |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
4
|
|
|
|
|
|
|
|
5
|
1
|
|
|
1
|
|
49
|
use Encode qw( decode ); |
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
38
|
|
6
|
1
|
|
|
1
|
|
378
|
use JSON::MaybeXS qw( ); |
|
1
|
|
|
|
|
3989
|
|
|
1
|
|
|
|
|
20
|
|
7
|
1
|
|
|
1
|
|
5
|
use Web::ComposableRequest::Constants qw( FALSE ); |
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
8
|
1
|
|
|
1
|
|
114
|
use Unexpected::Types qw( Object ); |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
9
|
1
|
|
|
1
|
|
311
|
use Moo::Role; |
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
5
|
|
10
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
requires qw( content_type _config _decode_body ); |
12
|
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
has '_json' => is => 'lazy', isa => Object, |
14
|
1
|
|
|
1
|
|
10
|
builder => sub { JSON::MaybeXS->new( utf8 => FALSE ) }; |
15
|
|
|
|
|
|
|
|
16
|
|
|
|
|
|
|
around '_decode_body' => sub { |
17
|
|
|
|
|
|
|
my ($orig, $self, $body, $content) = @_; |
18
|
|
|
|
|
|
|
|
19
|
|
|
|
|
|
|
$self->content_type eq 'application/json' |
20
|
|
|
|
|
|
|
or return $orig->( $self, $body, $content ); |
21
|
|
|
|
|
|
|
|
22
|
|
|
|
|
|
|
$body->{param} = $self->_json->decode |
23
|
|
|
|
|
|
|
( decode( $self->_config->encoding, $content ) ); |
24
|
|
|
|
|
|
|
|
25
|
|
|
|
|
|
|
return; |
26
|
|
|
|
|
|
|
}; |
27
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
1; |
29
|
|
|
|
|
|
|
|
30
|
|
|
|
|
|
|
__END__ |