View | Details | Raw Unified | Return to bug 39823
Collapse All | Expand All

(-)a/Koha/ERM/EUsage/UsageDataProvider.pm (-3 / +20 lines)
Lines 443-448 sub _check_trailing_character { Link Here
443
    return $url;
443
    return $url;
444
}
444
}
445
445
446
=head3 sushi_code_is_error
447
448
    my $is_error = $self->sushi_code_is_error($code);
449
450
Determines if a given SUSHI response code is considered an error. Codes greater than 1000 are generally errors unless they are in the list of known warning codes, in which case they are treated as non-errors. Docs at:
451
https://cop5.projectcounter.org/en/5.0.2/appendices/f-handling-errors-and-exceptions.html
452
453
=cut
454
455
sub _sushi_code_is_error {
456
    my ($code) = @_;
457
458
    return 0 unless $code;
459
460
    my @warning_codes = ( 1011, 3032, 3040, 3050, 3060, 3061, 3062, 3070 );
461
    return 1 if $code > 1000 && !grep { $_ == $code } @warning_codes;
462
}
463
446
=head3 _sushi_errors
464
=head3 _sushi_errors
447
465
448
Checks and handles possible errors in the SUSHI response
466
Checks and handles possible errors in the SUSHI response
Lines 457-468 sub _sushi_errors { Link Here
457
    my $message  = $decoded_response->{Message}  // $decoded_response->{message};
475
    my $message  = $decoded_response->{Message}  // $decoded_response->{message};
458
    my $code     = $decoded_response->{Code}     // $decoded_response->{code};
476
    my $code     = $decoded_response->{Code}     // $decoded_response->{code};
459
477
460
    if ($severity) {
478
    if ( $severity || _sushi_code_is_error($code) ) {
461
        $self->{job_callbacks}->{add_message_callback}->(
479
        $self->{job_callbacks}->{add_message_callback}->(
462
            {
480
            {
463
                type    => 'error',
481
                type    => 'error',
464
                code    => $code,
482
                code    => $code,
465
                message => $severity . ' - ' . $message,
483
                message => ( $severity ? "$severity - " : '' ) . $message,
466
            }
484
            }
467
        ) if $self->{job_callbacks};
485
        ) if $self->{job_callbacks};
468
        return 1;
486
        return 1;
469
- 

Return to bug 39823