File Coverage

blib/lib/Trickster/Request.pm
Criterion Covered Total %
statement 21 22 95.4
branch 2 4 50.0
condition 1 2 50.0
subroutine 7 7 100.0
pod 3 3 100.0
total 34 38 89.4


line stmt bran cond sub pod time code
1             package Trickster::Request;
2              
3 5     5   59 use strict;
  5         9  
  5         201  
4 5     5   23 use warnings;
  5         8  
  5         288  
5 5     5   78 use v5.14;
  5         19  
6              
7 5     5   26 use parent 'Plack::Request';
  5         17  
  5         38  
8              
9             sub params {
10 1     1 1 3 my ($self) = @_;
11 1   50     4 return $self->env->{'trickster.params'} || {};
12             }
13              
14             sub param {
15 1     1 1 10 my ($self, $name) = @_;
16            
17             # Check route params first
18 1         6 my $route_params = $self->params;
19 1 50       10 return $route_params->{$name} if exists $route_params->{$name};
20            
21             # Fall back to query/body params
22 0         0 return $self->SUPER::param($name);
23             }
24              
25             sub json {
26 2     2 1 19 my ($self) = @_;
27            
28 2         20 require JSON::PP;
29            
30 2         16 my $body = $self->content;
31 2 50       938 return unless $body;
32            
33 2         12 return JSON::PP::decode_json($body);
34             }
35              
36             1;
37              
38             __END__