From 9d91de2ea74bb3d6fba4f56ad8ac4c5889afe1b0 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Tue, 30 Mar 2021 10:52:01 -0300 Subject: [PATCH] Bug 28056: Add Koha::Exceptions::Patron::MissingMandatoryExtendedAttribute This trivial patch adds a new exception for more fine-grained control on the errors when dealing with patrons and their extended attributes. To test: 1. Apply this patches 2. Run: $ kshell k$ prove t/Koha/Exceptions.t => SUCCESS: Tests pass! 3. Sign off :-D --- Koha/Exceptions/Patron.pm | 51 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/Koha/Exceptions/Patron.pm b/Koha/Exceptions/Patron.pm index 069ed942c23..1bd51eb55ec 100644 --- a/Koha/Exceptions/Patron.pm +++ b/Koha/Exceptions/Patron.pm @@ -7,11 +7,62 @@ use Exception::Class ( description => "Something went wrong!" }, 'Koha::Exceptions::Patron::FailedDelete' => { + isa => 'Koha::Exceptions::Patron', description => "Deleting patron failed" }, 'Koha::Exceptions::Patron::FailedDeleteAnonymousPatron' => { + isa => 'Koha::Exceptions::Patron', description => "Deleting patron failed, AnonymousPatron is not deleteable" }, + 'Koha::Exceptions::Patron::MissingMandatoryExtendedAttribute' => { + isa => 'Koha::Exceptions::Patron', + description => "Mandatory extended attribute missing", + fields => ['type'] + } ); +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; -- 2.31.1