Lines 145-165
that we do not consider to be metadata
Link Here
|
145 |
|
145 |
|
146 |
sub metadata { |
146 |
sub metadata { |
147 |
my ( $self, $request ) = @_; |
147 |
my ( $self, $request ) = @_; |
148 |
my $attrs = $request->extended_attributes; |
148 |
|
149 |
my $metadata = {}; |
149 |
my @ignore = ( |
150 |
my @ignore = ( |
|
|
151 |
'requested_partners', 'type', 'type_disclaimer_value', 'type_disclaimer_date', 'unauthenticated_first_name', |
150 |
'requested_partners', 'type', 'type_disclaimer_value', 'type_disclaimer_date', 'unauthenticated_first_name', |
152 |
'unauthenticated_last_name', 'unauthenticated_email', 'historycheck_requests', 'copyrightclearance_confirmed' |
151 |
'unauthenticated_last_name', 'unauthenticated_email', 'historycheck_requests', 'copyrightclearance_confirmed' |
153 |
); |
152 |
); |
|
|
153 |
|
154 |
# Use database-level filtering instead of manual iteration |
155 |
my $attrs = $request->extended_attributes->search( { type => { '-not_in' => \@ignore } } ); |
156 |
|
154 |
my $core_fields = _get_core_fields(); |
157 |
my $core_fields = _get_core_fields(); |
|
|
158 |
my $metadata = {}; |
159 |
|
155 |
while ( my $attr = $attrs->next ) { |
160 |
while ( my $attr = $attrs->next ) { |
156 |
my $type = $attr->type; |
161 |
my $type = $attr->type; |
157 |
if ( !grep { $_ eq $type } @ignore ) { |
162 |
my $name = $core_fields->{$type} || ucfirst($type); |
158 |
my $name; |
163 |
$metadata->{$name} = $attr->value; |
159 |
$name = $core_fields->{$type} || ucfirst($type); |
|
|
160 |
$metadata->{$name} = $attr->value; |
161 |
} |
162 |
} |
164 |
} |
|
|
165 |
|
163 |
return $metadata; |
166 |
return $metadata; |
164 |
} |
167 |
} |
165 |
|
168 |
|
166 |
- |
|
|