The changes made to Koha::Authority has not been correctly fixed.
The code of Koha::Authority has been moved bo
Koha::MetadataRecord::Authority by bug 15380.
Test plan:
perl misc/search_tools/rebuild_elastic_search.pl -a -v
should success
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
return 'AuthHeader';
}
-=head2 get_all_authorities_iterator
-
- my $it = Koha::Authority->get_all_authorities_iterator();
-
-This will provide an iterator object that will, one by one, provide the
-Koha::Authority of each authority.
-
-The iterator is a Koha::MetadataIterator object.
-
-=cut
-
-sub get_all_authorities_iterator {
- my $database = Koha::Database->new();
- my $schema = $database->schema();
- my $rs =
- $schema->resultset('AuthHeader')->search( { marcxml => { '!=', undef } },
- { columns => [qw/ authid authtypecode marcxml /] } );
- my $next_func = sub {
- my $row = $rs->next();
- return if !$row;
- my $authid = $row->authid;
- my $authtypecode = $row->authtypecode;
- my $marcxml = $row->marcxml;
-
- my $record = eval {
- MARC::Record->new_from_xml(
- StripNonXmlChars($marcxml),
- 'UTF-8',
- (
- C4::Context->preference("marcflavour") eq "UNIMARC"
- ? "UNIMARCAUTH"
- : C4::Context->preference("marcflavour")
- )
- );
- };
- confess $@ if ($@);
- $record->encoding('UTF-8');
-
- # I'm not sure why we don't use the authtypecode from the database,
- # but this is how the original code does it.
- require C4::AuthoritiesMarc;
- $authtypecode = C4::AuthoritiesMarc::GuessAuthTypeCode($record);
-
- my $auth = __PACKAGE__->new( $record, $authid, $authtypecode );
-
- return $auth;
- };
- return Koha::MetadataIterator->new($next_func);
-}
-
1;
=cut
sub new {
- my $class = shift;
- my $record = shift;
+ my ( $class, $record, $params ) = @_;
+ $params //= {};
my $self = $class->SUPER::new(
{
'record' => $record,
- 'schema' => lc C4::Context->preference("marcflavour")
+ 'schema' => lc C4::Context->preference("marcflavour"),
+ %$params,
}
);
return;
}
+=head2 get_all_authorities_iterator
+
+ my $it = Koha::Authority->get_all_authorities_iterator();
+
+This will provide an iterator object that will, one by one, provide the
+Koha::Authority of each authority.
+
+The iterator is a Koha::MetadataIterator object.
+
+=cut
+
+sub get_all_authorities_iterator {
+ my $database = Koha::Database->new();
+ my $schema = $database->schema();
+ my $rs =
+ $schema->resultset('AuthHeader')->search( { marcxml => { '!=', undef } },
+ { columns => [qw/ authid authtypecode marcxml /] } );
+ my $next_func = sub {
+ my $row = $rs->next();
+ return if !$row;
+ my $authid = $row->authid;
+ my $authtypecode = $row->authtypecode;
+ my $marcxml = $row->marcxml;
+
+ my $record = eval {
+ MARC::Record->new_from_xml(
+ StripNonXmlChars($marcxml),
+ 'UTF-8',
+ (
+ C4::Context->preference("marcflavour") eq "UNIMARC"
+ ? "UNIMARCAUTH"
+ : C4::Context->preference("marcflavour")
+ )
+ );
+ };
+ confess $@ if ($@);
+ $record->encoding('UTF-8');
+
+ # I'm not sure why we don't use the authtypecode from the database,
+ # but this is how the original code does it.
+ require C4::AuthoritiesMarc;
+ $authtypecode = C4::AuthoritiesMarc::GuessAuthTypeCode($record);
+
+ my $auth = __PACKAGE__->new( $record, { authid => $authid, id => $authid, authtypecode => $authtypecode } );
+
+ return $auth;
+ };
+ return Koha::MetadataIterator->new($next_func);
+}
+
1;
use autodie;
use Getopt::Long;
use C4::Context;
-use Koha::Authority;
+use Koha::MetadataRecord::Authority;
use Koha::BiblioUtils;
use Koha::ElasticSearch::Indexer;
use MARC::Field;
$next = sub {
my $r = shift @biblionumbers;
return () unless defined $r;
- my $a = Koha::Authority->get_from_authid($r);
+ my $a = Koha::MetadataRecord::Authority->get_from_authid($r);
return ($r, $a->record);
};
} else {
- my $records = Koha::Authority->get_all_authorities_iterator();
+ my $records = Koha::MetadataRecord::Authority->get_all_authorities_iterator();
$next = sub {
$records->next();
}