documentation improvements
[catagits/Catalyst-Controller-DBIC-API.git] / lib / Catalyst / Controller / DBIC / API / Request.pm
1 package Catalyst::Controller::DBIC::API::Request;
2
3 #ABSTRACT: Provides a role to be applied to the Request object
4 use Moose::Role;
5 use MooseX::Types::Moose(':all');
6 use namespace::autoclean;
7
8 #XXX HACK to satisfy the used roles requirements
9 # see Moose test todo_tests/required_role_accessors.t
10 sub _application { }
11 sub _controller  { }
12
13 =attribute_private _application
14
15 This attribute helps bridge between the request guts and the application guts;
16 allows request argument validation against the schema. This is set during
17 L<Catalyst::Controller::DBIC::API/inflate_request>.
18
19 =cut
20
21 has '_application' => (
22     is     => 'ro',
23     writer => '_set_application',
24     isa    => Object | ClassName,
25 );
26
27 has '_controller' => (
28     is      => 'ro',
29     writer  => '_set_controller',
30     isa     => Object,
31     trigger => sub {
32         my ( $self, $new ) = @_;
33
34         $self->_set_class( $new->class ) if defined( $new->class );
35         $self->_set_application( $new->_application );
36         $self->_set_search_exposes( $new->search_exposes );
37         $self->_set_select_exposes( $new->select_exposes );
38     },
39     handles => ['prefetch_validator'],
40 );
41
42 with 'Catalyst::Controller::DBIC::API::StoredResultSource',
43     'Catalyst::Controller::DBIC::API::RequestArguments',
44     'Catalyst::Controller::DBIC::API::Request::Context';
45
46 =head1 DESCRIPTION
47
48 Please see L<Catalyst::Controller::DBIC::API::RequestArguments> and
49 L<Catalyst::Controller::DBIC::API::Request::Context> for the details of this
50 class, as both of those roles are consumed in this role.
51
52 =cut
53
54 1;