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 |
- |
|
|