Koha/svc/cataloguing/automatic_linker.pl
Aleisha Amohia 38c4837c24
Bug 31682: Silence automatic linker warn
To test:
1. Open the plack-intranet-error.log in your terminal
2. When editing or adding a bibliographic record, click the button to
link authorities automatically.
3. Notice the warn in the log
4. Apply the patch, restart services and refresh the page
5. Click the button again. There should be no warn

Sponsored-by: Catalyst IT

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2022-10-11 10:41:23 -03:00

61 lines
1.8 KiB
Perl
Executable file

#!/usr/bin/perl
# Bouzid Fergani, 2020 - inLibro
#
# This file is part of Koha.
#
# Koha is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Koha is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Koha; if not, see <http://www.gnu.org/licenses>.
use Modern::Perl;
use CGI;
use JSON qw( to_json );
use C4::Auth qw( check_cookie_auth );
use C4::Biblio qw( BiblioAutoLink TransformHtmlToMarc );
use C4::Context;
my $input = CGI->new;
print $input->header('application/json');
# Check the user's permissions
my ( $auth_status ) =
C4::Auth::check_cookie_auth( $input->cookie('CGISESSID'), {
editauthorities => 1,
editcatalogue => 'edit_catalogue'
});
if ( $auth_status ne "ok" ) {
print to_json( { status => 'UNAUTHORIZED' } );
exit 0;
}
# Link the biblio headings to authorities and return a json containing the status of all the links.
# Example : {"status":"OK","links":[{"authid":"123","status":"LINK_CHANGED","tag":"650"}]}
#
# tag = the tag number of the field
# authid = the value of the $9 subfield for this tag
# status = The status of the link (LOCAL_FOUND, NONE_FOUND, MULTIPLE_MATCH, UNCHANGED, CREATED)
my $json;
my $record = TransformHtmlToMarc($input,1);
my ( $headings_changed, $results ) = BiblioAutoLink (
$record,
scalar $input->param('frameworkcode'),
1
);
$json->{status} = 'OK';
$json->{links} = $results->{details} || '';
print to_json($json);