|  line  | 
 true  | 
 false  | 
 branch  | 
 
| 
63
 | 
 25  | 
 25  | 
 unless (eval {
	do {
	$ponapi_params = $self->_ponapi_params($req);
1
}
})
  | 
 
| 
68
 | 
 0  | 
 50  | 
 if $ponapi_params->{'__options__'}
  | 
 
| 
71
 | 
 25  | 
 25  | 
 if $ponapi_params->{'__error__'}
  | 
 
| 
96
 | 
 89  | 
 52  | 
 if $req->method =~ /^(?:GET|HEAD)$/
  | 
 
| 
116
 | 
 0  | 
 25  | 
 $self->{'ponapi.relative_links'} eq 'full' ? :
  | 
 
| 
117
 | 
 0  | 
 25  | 
 $self->{'ponapi.relative_links'} eq 'full' ? :
  | 
 
| 
119
 | 
 18  | 
 7  | 
 _is_get_like($req) ? :
  | 
 
| 
138
 | 
 0  | 
 46  | 
 unless grep {$_ eq $method;} 'GET', 'POST', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'
  | 
 
| 
143
 | 
 3  | 
 43  | 
 unless defined $type and $type =~ /$qr_member_name_prefix/
  | 
 
| 
146
 | 
 7  | 
 36  | 
 if (defined $rel_type) { }
  | 
 
| 
 | 
 1  | 
 35  | 
 elsif ($relationships) { }
  | 
 
| 
147
 | 
 0  | 
 7  | 
 if $relationships ne 'relationships'
  | 
 
| 
156
 | 
 1  | 
 42  | 
 if $def_rel_type and not $rel_type =~ /$qr_member_name_prefix/
  | 
 
| 
160
 | 
 31  | 
 11  | 
 if (defined $id) { }
  | 
 
| 
161
 | 
 2  | 
 2  | 
 if $method eq 'POST' and $relationships and $def_rel_type
  | 
 
| 
162
 | 
 20  | 
 3  | 
 if _is_get_like($req) and not $relationships and not $def_rel_type
  | 
 
| 
163
 | 
 1  | 
 22  | 
 if _is_get_like($req) and not $relationships and $def_rel_type
  | 
 
| 
164
 | 
 2  | 
 21  | 
 if _is_get_like($req) and $relationships and $def_rel_type
  | 
 
| 
165
 | 
 0  | 
 1  | 
 if $method eq 'PATCH' and not $relationships and not $def_rel_type
  | 
 
| 
166
 | 
 1  | 
 0  | 
 if $method eq 'PATCH' and $relationships and $def_rel_type
  | 
 
| 
167
 | 
 2  | 
 1  | 
 if $method eq 'DELETE' and not $relationships and not $def_rel_type
  | 
 
| 
168
 | 
 1  | 
 2  | 
 if $method eq 'DELETE' and $relationships and $def_rel_type
  | 
 
| 
171
 | 
 2  | 
 9  | 
 if _is_get_like($req)
  | 
 
| 
172
 | 
 9  | 
 2  | 
 if $method eq 'POST'
  | 
 
| 
175
 | 
 0  | 
 42  | 
 if ($method eq 'OPTIONS')
  | 
 
| 
177
 | 
 0  | 
 0  | 
 if (defined $id) { }
  | 
 
| 
178
 | 
 0  | 
 0  | 
 unless $def_rel_type
  | 
 
| 
186
 | 
 2  | 
 40  | 
 unless $action
  | 
 
| 
190
 | 
 29  | 
 11  | 
 if defined $id
  | 
 
| 
191
 | 
 7  | 
 33  | 
 if $def_rel_type
  | 
 
| 
198
 | 
 0  | 
 50  | 
 if $req->method eq 'OPTIONS'
  | 
 
| 
205
 | 
 13  | 
 37  | 
 if ($req->content_length)
  | 
 
| 
206
 | 
 13  | 
 0  | 
 if (my $content_type = $req->headers->header('Content-Type')) { }
  | 
 
| 
207
 | 
 0  | 
 13  | 
 unless $content_type eq $mt
  | 
 
| 
215
 | 
 35  | 
 15  | 
 if (my $accept = $req->headers->header('Accept'))
  | 
 
| 
219
 | 
 34  | 
 1  | 
 $_->[1]->type eq $mt ? :
  | 
 
| 
222
 | 
 34  | 
 1  | 
 if (@jsonapi_accept)
  | 
 
| 
224
 | 
 1  | 
 33  | 
 unless grep {$_->params_are_empty;} @jsonapi_accept
  | 
 
| 
230
 | 
 3  | 
 46  | 
 unless $has_mediatype
  | 
 
| 
246
 | 
 0  | 
 17  | 
 unless defined $p
  | 
 
| 
250
 | 
 0  | 
 17  | 
 unless grep {$p eq $_;} 'fields', 'filter', 'page', 'include', 'sort'
  | 
 
| 
254
 | 
 4  | 
 13  | 
 if not defined $f and grep {$p eq $_;} 'page', 'fields', 'filter'
  | 
 
| 
258
 | 
 0  | 
 13  | 
 if $p eq 'sort' and not $self->{'ponapi.sort_allowed'}
  | 
 
| 
261
 | 
 0  | 
 11  | 
 $unesacpe_values ? :
  | 
 
| 
266
 | 
 3  | 
 10  | 
 if $p ne 'fields' and not @values
  | 
 
| 
270
 | 
 3  | 
 7  | 
 if grep {$p eq $_;} 'fields', 'filter'
  | 
 
| 
273
 | 
 0  | 
 10  | 
 if $p eq 'page'
  | 
 
| 
276
 | 
 7  | 
 3  | 
 if $p eq 'include'
  | 
 
| 
281
 | 
 0  | 
 10  | 
 if $p eq 'sort'
  | 
 
| 
290
 | 
 21  | 
 12  | 
 unless $req->content_length and $req->content_length > 0
  | 
 
| 
292
 | 
 0  | 
 12  | 
 if _is_get_like($req)
  | 
 
| 
297
 | 
 0  | 
 11  | 
 unless $body and ref $body eq 'HASH' and exists $body->{'data'}
  | 
 
| 
301
 | 
 1  | 
 10  | 
 if defined $data and not ref($data) =~ /^(?:ARRAY|HASH)$/
  | 
 
| 
303
 | 
 10  | 
 0  | 
 if defined $data
  | 
 
| 
311
 | 
 2  | 
 8  | 
 ref $data eq 'ARRAY' ? :
  | 
 
| 
314
 | 
 0  | 
 10  | 
 unless keys %{$r;}
  | 
 
| 
317
 | 
 0  | 
 10  | 
 unless $r->{'type'}
  | 
 
| 
318
 | 
 1  | 
 9  | 
 unless check_name($r->{'type'})
  | 
 
| 
321
 | 
 3  | 
 6  | 
 if (exists $r->{'attributes'})
  | 
 
| 
322
 | 
 1  | 
 2  | 
 unless ref $r->{'attributes'} eq 'HASH'
  | 
 
| 
324
 | 
 1  | 
 1  | 
 if grep {not check_name($_);} keys %{$$r{'attributes'};}
  | 
 
| 
328
 | 
 3  | 
 4  | 
 if (exists $r->{'relationships'})
  | 
 
| 
329
 | 
 1  | 
 2  | 
 unless ref $r->{'relationships'} eq 'HASH'
  | 
 
| 
332
 | 
 1  | 
 1  | 
 unless check_name($k)
  | 
 
| 
335
 | 
 0  | 
 1  | 
 ref($rel || '') eq 'ARRAY' ? :
  | 
 
| 
337
 | 
 0  | 
 1  | 
 unless defined $relationship
  | 
 
| 
341
 | 
 1  | 
 0  | 
 if exists $relationship->{'data'}
  | 
 
| 
344
 | 
 0  | 
 1  | 
 unless ref $relationship eq 'HASH' and exists $relationship->{'type'}
  | 
 
| 
348
 | 
 1  | 
 0  | 
 if not check_name($relationship->{'type'}) or grep {not check_name($_);} keys %$relationship
  | 
 
| 
361
 | 
 50  | 
 0  | 
 if $self->{'ponapi.send_version_header'}
  | 
 
| 
363
 | 
 50  | 
 0  | 
 if (ref $content)
  | 
 
| 
367
 | 
 50  | 
 0  | 
 unless $is_head
  |