Lines 179-201
Generates the DBIC join attribute based on extended_attributes query entries, an
Link Here
|
179 |
&& reftype( $attributes->{prefetch} ) eq 'ARRAY' |
179 |
&& reftype( $attributes->{prefetch} ) eq 'ARRAY' |
180 |
&& grep ( /extended_attributes/, @{ $attributes->{prefetch} } ) ) |
180 |
&& grep ( /extended_attributes/, @{ $attributes->{prefetch} } ) ) |
181 |
{ |
181 |
{ |
182 |
# my $ea_entries = $self->_get_extended_attributes_entries( $filtered_params, 0 ); |
182 |
my @array = $self->_get_extended_attributes_entries( $filtered_params, 0 ); |
183 |
|
183 |
|
184 |
# Calling our private method to build the extended attributes relations |
184 |
foreach my $test (@array) { |
185 |
$result_set->_build_extended_attributes_relations(); |
185 |
push( @{ $attributes->{join} }, 'extended_attributes_'.$test ); |
186 |
|
|
|
187 |
# Testing out the extended attributes join (hardcoded for now) |
188 |
my @test = qw( extended_attributes_article_title extended_attributes_issue extended_attributes_volume ); |
189 |
foreach my $test (@test) { |
190 |
push( @{ $attributes->{join} }, $test ); |
191 |
} |
186 |
} |
192 |
|
|
|
193 |
# while ( $ea_entries > 0 ) { |
194 |
# push( @{ $attributes->{join} }, 'extended_attributes_title' ); |
195 |
# push( @{ $attributes->{join} }, 'extended_attributes_author' ); |
196 |
# $ea_entries--; |
197 |
# } |
198 |
|
199 |
} |
187 |
} |
200 |
} |
188 |
} |
201 |
); |
189 |
); |
Lines 570-605
Example: Returns 2 if given a $filtered_params containing the below:
Link Here
|
570 |
=cut |
558 |
=cut |
571 |
|
559 |
|
572 |
sub _get_extended_attributes_entries { |
560 |
sub _get_extended_attributes_entries { |
573 |
my ( $self, $params, $extended_attributes_entries ) = @_; |
561 |
my ( $self, $params, $extended_attributes_entries, @array ) = @_; |
574 |
|
562 |
|
575 |
if ( reftype($params) && reftype($params) eq 'HASH' ) { |
563 |
if ( reftype($params) && reftype($params) eq 'HASH' ) { |
576 |
|
564 |
|
577 |
# rewrite additional_field_values table query params |
565 |
# rewrite additional_field_values table query params |
578 |
$extended_attributes_entries = |
566 |
@array = |
579 |
_rewrite_related_metadata_query( $params, $extended_attributes_entries, 'field_id', 'value' ) |
567 |
_rewrite_related_metadata_query( $params, 'field_id', 'value', @array ) |
580 |
if $params->{'extended_attributes.field_id'}; |
568 |
if $params->{'extended_attributes.field_id'}; |
581 |
|
569 |
|
582 |
# rewrite borrower_attributes table query params |
570 |
# rewrite borrower_attributes table query params |
583 |
$extended_attributes_entries = |
571 |
@array = |
584 |
_rewrite_related_metadata_query( $params, $extended_attributes_entries, 'code', 'attribute' ) |
572 |
_rewrite_related_metadata_query( $params, 'code', 'attribute', @array ) |
585 |
if $params->{'extended_attributes.code'}; |
573 |
if $params->{'extended_attributes.code'}; |
586 |
|
574 |
|
587 |
# rewrite illrequestattributes table query params |
575 |
# rewrite illrequestattributes table query params |
588 |
$extended_attributes_entries = |
576 |
@array = |
589 |
_rewrite_related_metadata_query( $params, $extended_attributes_entries, 'type', 'value' ) |
577 |
_rewrite_related_metadata_query( $params, 'type', 'value', @array ) |
590 |
if $params->{'extended_attributes.type'}; |
578 |
if $params->{'extended_attributes.type'}; |
591 |
|
579 |
|
592 |
foreach my $key ( keys %{$params} ) { |
580 |
foreach my $key ( keys %{$params} ) { |
593 |
return $self->_get_extended_attributes_entries( $params->{$key}, $extended_attributes_entries ); |
581 |
return $self->_get_extended_attributes_entries( $params->{$key}, $extended_attributes_entries, @array ); |
594 |
} |
582 |
} |
595 |
} elsif ( reftype($params) && reftype($params) eq 'ARRAY' ) { |
583 |
} elsif ( reftype($params) && reftype($params) eq 'ARRAY' ) { |
596 |
foreach my $ea_instance (@$params) { |
584 |
foreach my $ea_instance (@$params) { |
597 |
$extended_attributes_entries = |
585 |
@array = $self->_get_extended_attributes_entries( $ea_instance, $extended_attributes_entries, @array ); |
598 |
+$self->_get_extended_attributes_entries( $ea_instance, $extended_attributes_entries ); |
|
|
599 |
} |
586 |
} |
600 |
return $extended_attributes_entries; |
587 |
return @array; |
601 |
} else { |
588 |
} else { |
602 |
return $extended_attributes_entries; |
589 |
return @array; |
603 |
} |
590 |
} |
604 |
} |
591 |
} |
605 |
|
592 |
|
Lines 638-657
It'll be rewritten as:
Link Here
|
638 |
=cut |
625 |
=cut |
639 |
|
626 |
|
640 |
sub _rewrite_related_metadata_query { |
627 |
sub _rewrite_related_metadata_query { |
641 |
my ( $params, $extended_attributes_entries, $key, $value ) = @_; |
628 |
my ( $params, $key, $value, @array ) = @_; |
642 |
|
629 |
|
643 |
$extended_attributes_entries++; |
630 |
my $old_key_value = delete $params->{ 'extended_attributes.' . $key }; |
644 |
if ( $extended_attributes_entries > 1 ) { |
631 |
my $new_key_value = "extended_attributes_$old_key_value" . "." . $key; |
645 |
my $old_key_value = delete $params->{ 'extended_attributes.' . $key }; |
632 |
$params->{$new_key_value} = $old_key_value; |
646 |
my $new_key_value = "extended_attributes_$key" . "." . $key; |
|
|
647 |
$params->{$new_key_value} = $old_key_value; |
648 |
|
633 |
|
649 |
my $old_value_value = delete $params->{ 'extended_attributes.' . $value }; |
634 |
my $old_value_value = delete $params->{ 'extended_attributes.' . $value }; |
650 |
my $new_value_value = "extended_attributes_$key" . "." . $value; |
635 |
my $new_value_value = "extended_attributes_$old_key_value" . "." . $value; |
651 |
$params->{$new_value_value} = $old_value_value; |
636 |
$params->{$new_value_value} = $old_value_value; |
652 |
} |
637 |
|
|
|
638 |
push @array, $old_key_value; |
653 |
|
639 |
|
654 |
return $extended_attributes_entries; |
640 |
return @array; |
655 |
} |
641 |
} |
656 |
|
642 |
|
657 |
1; |
643 |
1; |