c025270ea5424dcc9c4401dd81c944d65fa41264
[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
9 sub _application {}
10 sub _controller {}
11
12 =attribute_private _application is: ro, isa: Object, handles: Catalyst::Controller::DBIC::API::StoredResultSource
13
14 This attribute helps bridge between the request guts and the application guts; allows request argument validation against the schema. This is set during L<Catalyst::Controller::DBIC::API/inflate_request>
15
16 =cut
17
18 has '_application' =>
19 (
20     is => 'ro',
21     writer => '_set_application',
22     isa => Object|ClassName,
23 );
24
25 has '_controller' =>
26 (
27     is => 'ro',
28     writer => '_set_controller',
29     isa => Object,
30     trigger => sub
31     {
32         my ($self, $new) = @_;
33
34         $self->_set_class($new->class) if defined($new->class);
35         $self->_set_application($new->_application); 
36         $self->_set_prefetch_allows($new->prefetch_allows);
37         $self->_set_search_exposes($new->search_exposes);
38         $self->_set_select_exposes($new->select_exposes);
39     }
40 );
41
42 with 'Catalyst::Controller::DBIC::API::StoredResultSource';
43 with 'Catalyst::Controller::DBIC::API::RequestArguments';
44 with 'Catalyst::Controller::DBIC::API::Request::Context';
45
46 =head1 DESCRIPTION
47
48 Please see L<Catalyst::Controller::DBIC::API::RequestArguments> and L<Catalyst::Controller::DBIC::API::Request::Context> for the details of this class, as both of those roles are consumed in this role.
49
50 =cut
51
52 1;