71aceb27a938d88b63e20ddaeba6721938eefb11
[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 600_todo_tests/006_required_role_accessors.t
10 sub _application {}
11 sub _controller {}
12
13 =attribute_private _application is: ro, isa: Object|ClassName, handles: Catalyst::Controller::DBIC::API::StoredResultSource
14
15 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>
16
17 =cut
18
19 has '_application' =>
20 (
21     is => 'ro',
22     writer => '_set_application',
23     isa => Object|ClassName,
24 );
25
26 has '_controller' =>
27 (
28     is => 'ro',
29     writer => '_set_controller',
30     isa => Object,
31     trigger => sub
32     {
33         my ($self, $new) = @_;
34
35         $self->_set_class($new->class) if defined($new->class);
36         $self->_set_application($new->_application);
37         $self->_set_search_exposes($new->search_exposes);
38         $self->_set_select_exposes($new->select_exposes);
39     },
40     handles => ['prefetch_validator'],
41 );
42
43
44 with 'Catalyst::Controller::DBIC::API::StoredResultSource',
45      'Catalyst::Controller::DBIC::API::RequestArguments',
46      'Catalyst::Controller::DBIC::API::Request::Context';
47
48 =head1 DESCRIPTION
49
50 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.
51
52 =cut
53
54 1;