File Coverage

blib/lib/PONAPI/DAO/Request/RetrieveRelationships.pm
Criterion Covered Total %
statement 16 16 100.0
branch 5 6 83.3
condition 2 3 66.6
subroutine 3 3 100.0
pod 0 1 0.0
total 26 29 89.6


line stmt bran cond sub pod time code
1             # ABSTRACT: DAO request - retrieve relationships
2             package PONAPI::DAO::Request::RetrieveRelationships;
3              
4 8     8   47 use Moose;
  8         18  
  8         117  
5              
6             extends 'PONAPI::DAO::Request';
7              
8             with 'PONAPI::DAO::Request::Role::HasFilter',
9             'PONAPI::DAO::Request::Role::HasPage',
10             'PONAPI::DAO::Request::Role::HasSort',
11             'PONAPI::DAO::Request::Role::HasID',
12             'PONAPI::DAO::Request::Role::HasRelationshipType';
13              
14             sub execute {
15 16     16 0 521 my $self = shift;
16              
17 16 100       644 if ( $self->is_valid ) {
18 8         307 my $repo = $self->repository;
19 8         289 my $document = $self->document;
20 8         268 my $one_to_many = $repo->has_one_to_many_relationship($self->type, $self->rel_type);
21              
22 8 100       45 $document->convert_to_collection if $one_to_many;
23              
24 8         16 $repo->retrieve_relationships( %{ $self } );
  8         65  
25              
26 5 50 66     133 $document->add_null_resource
27             unless $one_to_many or $document->has_resource_builders;
28             }
29              
30 13         72 return $self->response();
31             }
32              
33             __PACKAGE__->meta->make_immutable;
34 8     8   54285 no Moose; 1;
  8         19  
  8         54  
35              
36             __END__
37              
38             =pod
39              
40             =encoding UTF-8
41              
42             =head1 NAME
43              
44             PONAPI::DAO::Request::RetrieveRelationships - DAO request - retrieve relationships
45              
46             =head1 VERSION
47              
48             version 0.002006
49              
50             =head1 AUTHORS
51              
52             =over 4
53              
54             =item *
55              
56             Mickey Nasriachi <mickey@cpan.org>
57              
58             =item *
59              
60             Stevan Little <stevan@cpan.org>
61              
62             =item *
63              
64             Brian Fraser <hugmeir@cpan.org>
65              
66             =back
67              
68             =head1 COPYRIGHT AND LICENSE
69              
70             This software is copyright (c) 2016 by Mickey Nasriachi, Stevan Little, Brian Fraser.
71              
72             This is free software; you can redistribute it and/or modify it under
73             the same terms as the Perl 5 programming language system itself.
74              
75             =cut