Make tests pass for new definitive chaining
[catagits/Catalyst-Controller-DBIC-API.git] / lib / Catalyst / Controller / DBIC / API / RequestArguments.pm
index 5dedb28..7b961b4 100644 (file)
@@ -462,19 +462,21 @@ request_data holds the raw (but deserialized) data for ths request
         is => 'ro',
         isa => HashRef,
         writer => '_set_request_data',
+        predicate => 'has_request_data',
         trigger => sub
         {
             my ($self, $new) = @_;
             my $controller = $self->_controller;
+            return unless defined($new) && keys %$new;
             $self->_set_prefetch($new->{$controller->prefetch_arg}) if exists $new->{$controller->prefetch_arg};
             $self->_set_select($new->{$controller->select_arg}) if exists $new->{$controller->select_arg};
             $self->_set_as($new->{$controller->as_arg}) if exists $new->{$controller->as_arg};
             $self->_set_grouped_by($new->{$controller->grouped_by_arg}) if exists $new->{$controller->grouped_by_arg};
             $self->_set_ordered_by($new->{$controller->ordered_by_arg}) if exists $new->{$controller->ordered_by_arg};
-            $self->_set_search($new->{$controller->search_arg}) if exists $new->{$controller->search_arg};
             $self->_set_count($new->{$controller->count_arg}) if exists $new->{$controller->count_arg};
             $self->_set_page($new->{$controller->page_arg}) if exists $new->{$controller->page_arg};
             $self->_set_offset($new->{$controller->offset_arg}) if exists $new->{$controller->offset_arg};
+            $self->_set_search($new->{$controller->search_arg}) if exists $new->{$controller->search_arg};
         }
     );
 
@@ -488,7 +490,6 @@ format_search_parameters iterates through the provided params ArrayRef, calling
 
     method format_search_parameters => sub
     {
-        $DB::single = 1;
         my ($self, $params) = @_;
         
         my $genparams = [];
@@ -509,7 +510,6 @@ generate_column_parameters recursively generates properly aliased parameters for
 
     method generate_column_parameters => sub
     {
-        $DB::single = 1;
         my ($self, $source, $param, $join, $base) = @_;
         $base ||= 'me';
         my $search_params;
@@ -553,7 +553,6 @@ generate_parameters_attributes takes the raw search arguments and formats the pa
 
     method generate_parameters_attributes => sub
     {
-        $DB::single = 1;
         my ($self, $args) = @_;
 
         return ( $self->format_search_parameters($args), $self->search_attributes );
@@ -588,6 +587,7 @@ This builder method generates the search attributes
         elsif(!$self->has_page && defined($search_attributes->{offset}) && defined($search_attributes->{rows}))
         {
             $search_attributes->{page} = $search_attributes->{offset} / $search_attributes->{rows} + 1;
+            delete $search_attributes->{offset};
         }