Koha-clms/Koha/Exceptions/Patron.pm

91 lines
2.4 KiB
Perl

package Koha::Exceptions::Patron;
use Modern::Perl;
use Koha::Exception;
use Exception::Class (
'Koha::Exceptions::Patron' => {
isa => 'Koha::Exception',
},
'Koha::Exceptions::Patron::MissingEmailAddress' => {
description => "Patron has no email address",
},
'Koha::Exceptions::Patron::FailedDelete' => {
isa => 'Koha::Exceptions::Patron',
description => "Deleting patron failed"
},
'Koha::Exceptions::Patron::FailedAnonymizing' => {
isa => 'Koha::Exceptions::Patron',
description => "Anonymizing patron reading history failed"
},
'Koha::Exceptions::Patron::FailedDeleteAnonymousPatron' => {
isa => 'Koha::Exceptions::Patron',
description => "Deleting patron failed, AnonymousPatron is not deletable"
},
'Koha::Exceptions::Patron::FailedDeleteProtectedPatron' => {
isa => 'Koha::Exceptions::Patron',
description => "Deleting patron failed, patron is protected"
},
'Koha::Exceptions::Patron::InvalidUserid' => {
isa => 'Koha::Exceptions::Patron',
description => 'Field userid is not valid (probably not unique)',
fields => ['userid'],
},
'Koha::Exceptions::Patron::MissingMandatoryExtendedAttribute' => {
isa => 'Koha::Exceptions::Patron',
description => "Mandatory extended attribute missing",
fields => ['type']
},
'Koha::Exceptions::Patron::NotFound' => {
isa => 'Koha::Exceptions::Patron',
description => "Patron not found"
},
);
sub full_message {
my $self = shift;
my $msg = $self->message;
unless ($msg) {
if ( $self->isa('Koha::Exceptions::Patron::MissingMandatoryExtendedAttribute') ) {
$msg = sprintf( "Missing mandatory extended attribute (type=%s)", $self->type );
}
}
return $msg;
}
=head1 NAME
Koha::Exceptions::Patron - Base class for patron exceptions
=head1 Exceptions
=head2 Koha::Exceptions::Patron
Generic patron exception.
=head2 Koha::Exceptions::Patron::FailedDelete
Deleting patron failed.
=head2 Koha::Exceptions::Patron::FailedDeleteAnonymousPatron
Tried to delete the anonymous patron.
=head2 Koha::Exceptions::Patron::MissingMandatoryExtendedAttribute
A required mandatory extended attribute is missing.
=head1 Class methods
=head2 full_message
Overloaded method for exception stringifying.
=cut
1;