Bug 17499: (follow-up) Rename to Koha::Patron::MessagePreference

Koha::Patron::Message refers to "messages" table that is used for circulation
messages. MessagePreference now refers to a messaging preference that is used
for enqueued notifications.

To test:
1. prove t/db_dependent/Koha/Patron/MessagePreference/Attributes.t
2. prove t/db_dependent/Koha/Patron/MessagePreference/Transport/Preferences.t
3. prove t/db_dependent/Koha/Patron/MessagePreference/Transport/Types.t
4. prove t/db_dependent/Koha/Patron/MessagePreference/Transports.t
5. prove t/db_dependent/Koha/Patron/MessagePreferences.t

Sponsored-by: The National Library of Finland

Signed-off-by: Michal Denar <black23@gmail.com>
Signed-off-by: Sam Lau <samalau@gmail.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Lari Taskula 2021-03-18 02:13:50 +00:00 committed by Tomas Cohen Arazi
parent f139509818
commit d7184e10c4
No known key found for this signature in database
GPG Key ID: 0A272EA1B2F3C15F
23 changed files with 276 additions and 276 deletions

View File

@ -1,4 +1,4 @@
package Koha::Exceptions::Patron::Message::Preference;
package Koha::Exceptions::Patron::MessagePreference;
# This file is part of Koha.
#
@ -19,56 +19,56 @@ use Modern::Perl;
use Exception::Class (
'Koha::Exceptions::Patron::Message::Preference' => {
'Koha::Exceptions::Patron::MessagePreference' => {
description => 'Something went wrong'
},
'Koha::Exceptions::Patron::Message::Preference::AttributeNotFound' => {
isa => 'Koha::Exceptions::Patron::Message::Preference',
'Koha::Exceptions::Patron::MessagePreference::AttributeNotFound' => {
isa => 'Koha::Exceptions::Patron::MessagePreference',
description => "Message attribute not found",
fields => ['message_attribute_id']
},
'Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceOutOfRange' => {
isa => 'Koha::Exceptions::Patron::Message::Preference',
'Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceOutOfRange' => {
isa => 'Koha::Exceptions::Patron::MessagePreference',
description => "Days in advance is out of range",
fields => ['min','max', 'message_name']
},
'Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceNotAvailable' => {
isa => 'Koha::Exceptions::Patron::Message::Preference',
'Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceNotAvailable' => {
isa => 'Koha::Exceptions::Patron::MessagePreference',
description => "Days in advance cannot be selected for this preference",
fields => ['message_name']
},
'Koha::Exceptions::Patron::Message::Preference::DigestNotAvailable' => {
isa => 'Koha::Exceptions::Patron::Message::Preference',
'Koha::Exceptions::Patron::MessagePreference::DigestNotAvailable' => {
isa => 'Koha::Exceptions::Patron::MessagePreference',
description => "Digest is not available for this message type",
fields => ['message_name']
},
'Koha::Exceptions::Patron::Message::Preference::DigestRequired' => {
isa => 'Koha::Exceptions::Patron::Message::Preference',
'Koha::Exceptions::Patron::MessagePreference::DigestRequired' => {
isa => 'Koha::Exceptions::Patron::MessagePreference',
description => "Digest must be selected for this message type",
fields => ['message_name']
},
'Koha::Exceptions::Patron::Message::Preference::EmailAddressRequired' => {
isa => 'Koha::Exceptions::Patron::Message::Preference',
'Koha::Exceptions::Patron::MessagePreference::EmailAddressRequired' => {
isa => 'Koha::Exceptions::Patron::MessagePreference',
description => "Patron has no email address, cannot use email transport type.",
fields => ['message_name', 'borrowernumber' ]
},
'Koha::Exceptions::Patron::Message::Preference::NoTransportType' => {
isa => 'Koha::Exceptions::Patron::Message::Preference',
'Koha::Exceptions::Patron::MessagePreference::NoTransportType' => {
isa => 'Koha::Exceptions::Patron::MessagePreference',
description => "Transport type not available for this message.",
fields => ['message_name', 'transport_type']
},
'Koha::Exceptions::Patron::Message::Preference::PhoneNumberRequired' => {
isa => 'Koha::Exceptions::Patron::Message::Preference',
'Koha::Exceptions::Patron::MessagePreference::PhoneNumberRequired' => {
isa => 'Koha::Exceptions::Patron::MessagePreference',
description => "Patron has no phone number, cannot use phone transport type.",
fields => ['message_name', 'borrowernumber' ]
},
'Koha::Exceptions::Patron::Message::Preference::SMSNumberRequired' => {
isa => 'Koha::Exceptions::Patron::Message::Preference',
'Koha::Exceptions::Patron::MessagePreference::SMSNumberRequired' => {
isa => 'Koha::Exceptions::Patron::MessagePreference',
description => "Patron has no SMS number, cannot use sms transport type.",
fields => ['message_name', 'borrowernumber' ]
},
'Koha::Exceptions::Patron::Message::Preference::TalkingTechItivaPhoneNotificationRequired' => {
isa => 'Koha::Exceptions::Patron::Message::Preference',
'Koha::Exceptions::Patron::MessagePreference::TalkingTechItivaPhoneNotificationRequired' => {
isa => 'Koha::Exceptions::Patron::MessagePreference',
description => "System preference TalkingTechItivaPhoneNotification is disabled, cannot use itiva transport type.",
fields => ['message_name', 'borrowernumber' ]
},

View File

@ -1,4 +1,4 @@
package Koha::Exceptions::Patron::Message::Transport;
package Koha::Exceptions::Patron::MessagePreference::Transport;
# This file is part of Koha.
#
@ -19,11 +19,11 @@ use Modern::Perl;
use Exception::Class (
'Koha::Exceptions::Patron::Message::Transport' => {
'Koha::Exceptions::Patron::MessagePreference::Transport' => {
description => 'Something went wrong'
},
'Koha::Exceptions::Patron::Message::Transport::TypeNotFound' => {
isa => 'Koha::Exceptions::Patron::Message::Transport',
'Koha::Exceptions::Patron::MessagePreference::Transport::TypeNotFound' => {
isa => 'Koha::Exceptions::Patron::MessagePreference::Transport',
description => "Transport type does not exist.",
fields => ['transport_type']
},

View File

@ -50,7 +50,7 @@ use Koha::Patron::HouseboundRole;
use Koha::Patron::Images;
use Koha::Patron::Messages;
use Koha::Patron::Modifications;
use Koha::Patron::Message::Preferences;
use Koha::Patron::MessagePreferences;
use Koha::Patron::Relationships;
use Koha::Patron::Restrictions;
use Koha::Patrons;
@ -2083,7 +2083,7 @@ sub get_extended_attribute {
Sets default messaging preferences on patron.
See Koha::Patron::Message::Preference(s) for more documentation, especially on
See Koha::Patron::MessagePreference(s) for more documentation, especially on
thrown exceptions.
=cut
@ -2091,11 +2091,11 @@ thrown exceptions.
sub set_default_messaging_preferences {
my ($self, $categorycode) = @_;
my $options = Koha::Patron::Message::Preferences->get_options;
my $options = Koha::Patron::MessagePreferences->get_options;
foreach my $option (@$options) {
# Check that this option has preference configuration for this category
unless (Koha::Patron::Message::Preferences->search({
unless (Koha::Patron::MessagePreferences->search({
message_attribute_id => $option->{message_attribute_id},
categorycode => $categorycode || $self->categorycode,
})->count) {
@ -2103,12 +2103,12 @@ sub set_default_messaging_preferences {
}
# Delete current setting
Koha::Patron::Message::Preferences->search({
Koha::Patron::MessagePreferences->search({
borrowernumber => $self->borrowernumber,
message_attribute_id => $option->{message_attribute_id},
})->delete;
Koha::Patron::Message::Preference->new_from_default({
Koha::Patron::MessagePreference->new_from_default({
borrowernumber => $self->borrowernumber,
categorycode => $categorycode || $self->categorycode,
message_attribute_id => $option->{message_attribute_id},

View File

@ -1,4 +1,4 @@
package Koha::Patron::Message::Preference;
package Koha::Patron::MessagePreference;
# Copyright Koha-Suomi Oy 2016
#
@ -21,22 +21,22 @@ use Modern::Perl;
use Koha::Database;
use Koha::Exceptions;
use Koha::Exceptions::Patron::Message::Preference;
use Koha::Exceptions::Patron::Message::Transport;
use Koha::Exceptions::Patron::MessagePreference;
use Koha::Exceptions::Patron::MessagePreference::Transport;
use Koha::Exceptions::Patron::Category;
use Koha::Patron::Categories;
use Koha::Patron::Message::Attributes;
use Koha::Patron::Message::Preferences;
use Koha::Patron::Message::Transport::Preferences;
use Koha::Patron::Message::Transport::Types;
use Koha::Patron::Message::Transports;
use Koha::Patron::MessagePreference::Attributes;
use Koha::Patron::MessagePreferences;
use Koha::Patron::MessagePreference::Transport::Preferences;
use Koha::Patron::MessagePreference::Transport::Types;
use Koha::Patron::MessagePreference::Transports;
use Koha::Patrons;
use base qw(Koha::Object);
=head1 NAME
Koha::Patron::Message::Preference - Koha Patron Message Preference object class
Koha::Patron::MessagePreference - Koha Patron Message Preference object class
=head1 API
@ -46,7 +46,7 @@ Koha::Patron::Message::Preference - Koha Patron Message Preference object class
=head3 new
my $preference = Koha::Patron::Message::Preference->new({
my $preference = Koha::Patron::MessagePreference->new({
borrowernumber => 123,
#categorycode => 'ABC',
message_attribute_id => 4,
@ -89,7 +89,7 @@ sub new {
=head3 new_from_default
my $preference = Koha::Patron::Message::Preference->new_from_default({
my $preference = Koha::Patron::MessagePreference->new_from_default({
borrowernumber => 123,
categorycode => 'ABC', # if not given, patron's categorycode will be used
message_attribute_id => 1,
@ -124,7 +124,7 @@ sub new_from_default {
$params->{'categorycode'} = $patron->categorycode;
}
my $default = Koha::Patron::Message::Preferences->find({
my $default = Koha::Patron::MessagePreferences->find({
categorycode => $params->{'categorycode'},
message_attribute_id => $params->{'message_attribute_id'},
});
@ -144,12 +144,12 @@ sub new_from_default {
# Set default messaging transport types
my $default_transport_types =
Koha::Patron::Message::Transport::Preferences->search({
Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id =>
$default->{'borrower_message_preference_id'}
});
while (my $transport = $default_transport_types->next) {
Koha::Patron::Message::Transport::Preference->new({
Koha::Patron::MessagePreference::Transport::Preference->new({
borrower_message_preference_id => $self->borrower_message_preference_id,
message_transport_type => $transport->message_transport_type,
})->store;
@ -174,7 +174,7 @@ sub message_name {
if ($self->{'_message_name'}) {
return $self->{'_message_name'};
}
$self->{'_message_name'} = Koha::Patron::Message::Attributes->find({
$self->{'_message_name'} = Koha::Patron::MessagePreference::Attributes->find({
message_attribute_id => $self->message_attribute_id,
})->message_name;
return $self->{'_message_name'};
@ -201,7 +201,7 @@ sub message_transport_types {
return $self->{'_message_transport_types'};
}
map {
my $transport = Koha::Patron::Message::Transports->find({
my $transport = Koha::Patron::MessagePreference::Transports->find({
message_attribute_id => $self->message_attribute_id,
message_transport_type => $_->message_transport_type,
is_digest => $self->wants_digest
@ -217,7 +217,7 @@ sub message_transport_types {
$self->{'_message_transport_types'}->{$_->message_transport_type}
= $transport ? $transport->letter_code : ' ';
}
Koha::Patron::Message::Transport::Preferences->search({
Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id => $self->borrower_message_preference_id,
})->as_list;
return $self->{'_message_transport_types'} || {};
@ -295,12 +295,12 @@ sub store {
# store message transport types
if (exists $self->{'_message_transport_types'}) {
Koha::Patron::Message::Transport::Preferences->search({
Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id =>
$self->borrower_message_preference_id,
})->delete;
foreach my $type (keys %{$self->{'_message_transport_types'}}) {
Koha::Patron::Message::Transport::Preference->new({
Koha::Patron::MessagePreference::Transport::Preference->new({
borrower_message_preference_id =>
$self->borrower_message_preference_id,
message_transport_type => $type,
@ -315,7 +315,7 @@ sub store {
Makes a basic validation for object.
Returns Koha::Patron::Message::Preference object, or throws and exception.
Returns Koha::Patron::MessagePreference object, or throws and exception.
=cut
@ -344,7 +344,7 @@ sub validate {
}
if (!$self->in_storage) {
my $previous = Koha::Patron::Message::Preferences->search({
my $previous = Koha::Patron::MessagePreferences->search({
borrowernumber => $self->borrowernumber,
categorycode => $self->categorycode,
message_attribute_id => $self->message_attribute_id,
@ -357,11 +357,11 @@ sub validate {
}
}
my $attr = Koha::Patron::Message::Attributes->find(
my $attr = Koha::Patron::MessagePreference::Attributes->find(
$self->message_attribute_id
);
unless ($attr) {
Koha::Exceptions::Patron::Message::Preference::AttributeNotFound->throw(
Koha::Exceptions::Patron::MessagePreference::AttributeNotFound->throw(
error => 'Message attribute with id '.$self->message_attribute_id
.' not found',
message_attribute_id => $self->message_attribute_id,
@ -369,14 +369,14 @@ sub validate {
}
if (defined $self->days_in_advance) {
if ($attr && $attr->takes_days == 0) {
Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceNotAvailable->throw(
Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceNotAvailable->throw(
error => 'days_in_advance cannot be defined for '.
$attr->message_name . '.',
message_name => $attr->message_name,
);
}
elsif ($self->days_in_advance < 0 || $self->days_in_advance > 30) {
Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceOutOfRange->throw(
Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceOutOfRange->throw(
error => 'days_in_advance has to be a value between 0-30 for '.
$attr->message_name . '.',
message_name => $attr->message_name,
@ -386,18 +386,18 @@ sub validate {
}
}
if (defined $self->wants_digest) {
my $transports = Koha::Patron::Message::Transports->search({
my $transports = Koha::Patron::MessagePreference::Transports->search({
message_attribute_id => $self->message_attribute_id,
is_digest => $self->wants_digest ? 1 : 0,
});
unless ($transports->count) {
if (!$self->wants_digest) {
Koha::Exceptions::Patron::Message::Preference::DigestRequired->throw(
Koha::Exceptions::Patron::MessagePreference::DigestRequired->throw(
error => 'Digest must be selected for '.$attr->message_name.'.',
message_name => $attr->message_name
);
} else {
Koha::Exceptions::Patron::Message::Preference::DigestNotAvailable->throw(
Koha::Exceptions::Patron::MessagePreference::DigestNotAvailable->throw(
error => 'Digest cannot be selected for '.$attr->message_name.'.',
message_name => $attr->message_name
);
@ -419,12 +419,12 @@ sub _set_message_transport_types {
$self->_validate_message_transport_types({ message_transport_types => $types });
foreach my $type (@$types) {
unless (exists $self->{'_message_transport_types'}->{$type}) {
my $transport = Koha::Patron::Message::Transports->search({
my $transport = Koha::Patron::MessagePreference::Transports->search({
message_attribute_id => $self->message_attribute_id,
message_transport_type => $type
})->next;
unless ($transport) {
Koha::Exceptions::Patron::Message::Preference::NoTransportType->throw(
Koha::Exceptions::Patron::MessagePreference::NoTransportType->throw(
error => 'No transport configured for '.$self->message_name.
" transport type $type.",
message_name => $self->message_name,
@ -433,25 +433,25 @@ sub _set_message_transport_types {
}
if (defined $self->borrowernumber) {
if ( ! $self->mtt_deliverable($type) ) {
Koha::Exceptions::Patron::Message::Preference::EmailAddressRequired->throw(
Koha::Exceptions::Patron::MessagePreference::EmailAddressRequired->throw(
error => 'Patron has not set email address, '.
'cannot use email as message transport',
message_name => $self->message_name,
borrowernumber => $self->borrowernumber,
) if $type eq 'email';
Koha::Exceptions::Patron::Message::Preference::TalkingTechItivaPhoneNotificationRequired->throw(
Koha::Exceptions::Patron::MessagePreference::TalkingTechItivaPhoneNotificationRequired->throw(
error => 'System preference TalkingTechItivaPhoneNotification disabled'.
'cannot use itiva as message transport',
message_name => $self->message_name,
borrowernumber => $self->borrowernumber,
) if $type eq 'itiva';
Koha::Exceptions::Patron::Message::Preference::PhoneNumberRequired->throw(
Koha::Exceptions::Patron::MessagePreference::PhoneNumberRequired->throw(
error => 'Patron has not set phone number'.
'cannot use phone as message transport',
message_name => $self->message_name,
borrowernumber => $self->borrowernumber,
) if $type eq 'phone';
Koha::Exceptions::Patron::Message::Preference::SMSNumberRequired->throw(
Koha::Exceptions::Patron::MessagePreference::SMSNumberRequired->throw(
error => 'Patron has not set SMS number'.
'cannot use sms as message transport',
message_name => $self->message_name,
@ -476,10 +476,10 @@ sub _validate_message_transport_types {
my $types = $params->{'message_transport_types'};
foreach my $type (@{$types}) {
unless (Koha::Patron::Message::Transport::Types->find({
unless (Koha::Patron::MessagePreference::Transport::Types->find({
message_transport_type => $type
})) {
Koha::Exceptions::Patron::Message::Transport::TypeNotFound->throw(
Koha::Exceptions::Patron::MessagePreference::Transport::TypeNotFound->throw(
error => "Message transport type '$type' does not exist",
transport_type => $type,
);

View File

@ -1,4 +1,4 @@
package Koha::Patron::Message::Attribute;
package Koha::Patron::MessagePreference::Attribute;
# Copyright Koha-Suomi Oy 2016
#
@ -25,7 +25,7 @@ use base qw(Koha::Object);
=head1 NAME
Koha::Patron::Message::Attribute - Koha Patron Message Attribute object class
Koha::Patron::MessagePreference::Attribute - Koha Patron Message Attribute object class
=head1 API

View File

@ -1,4 +1,4 @@
package Koha::Patron::Message::Attributes;
package Koha::Patron::MessagePreference::Attributes;
# Copyright Koha-Suomi Oy 2016
#
@ -20,13 +20,13 @@ package Koha::Patron::Message::Attributes;
use Modern::Perl;
use Koha::Database;
use Koha::Patron::Message::Attribute;
use Koha::Patron::MessagePreference::Attribute;
use base qw(Koha::Objects);
=head1 NAME
Koha::Patron::Message::Attributes - Koha Patron Message Attributes object class
Koha::Patron::MessagePreference::Attributes - Koha Patron Message Attributes object class
=head1 API
@ -49,7 +49,7 @@ sub _type {
=cut
sub object_class {
return 'Koha::Patron::Message::Attribute';
return 'Koha::Patron::MessagePreference::Attribute';
}
=head1 AUTHOR

View File

@ -1,4 +1,4 @@
package Koha::Patron::Message::Transport;
package Koha::Patron::MessagePreference::Transport;
# Copyright Koha-Suomi Oy 2016
#
@ -25,7 +25,7 @@ use base qw(Koha::Object);
=head1 NAME
Koha::Patron::Message::Transport - Koha Patron Message Transport object class
Koha::Patron::MessagePreference::Transport - Koha Patron Message Transport object class
=head1 API

View File

@ -1,4 +1,4 @@
package Koha::Patron::Message::Transport::Preference;
package Koha::Patron::MessagePreference::Transport::Preference;
# Copyright Koha-Suomi Oy 2016
#
@ -25,7 +25,7 @@ use base qw(Koha::Object);
=head1 NAME
Koha::Patron::Message::Transport::Preference - Koha Patron Message Transport
Koha::Patron::MessagePreference::Transport::Preference - Koha Patron Message Transport
Preference object class
=head1 API

View File

@ -1,4 +1,4 @@
package Koha::Patron::Message::Transport::Preferences;
package Koha::Patron::MessagePreference::Transport::Preferences;
# Copyright Koha-Suomi Oy 2016
#
@ -20,13 +20,13 @@ package Koha::Patron::Message::Transport::Preferences;
use Modern::Perl;
use Koha::Database;
use Koha::Patron::Message::Transport::Preference;
use Koha::Patron::MessagePreference::Transport::Preference;
use base qw(Koha::Objects);
=head1 NAME
Koha::Patron::Message::Transport::Preferences - Koha Patron Message Transport
Koha::Patron::MessagePreference::Transport::Preferences - Koha Patron Message Transport
Preferences object class
=head1 API
@ -48,7 +48,7 @@ sub _type {
=cut
sub object_class {
return 'Koha::Patron::Message::Transport::Preference';
return 'Koha::Patron::MessagePreference::Transport::Preference';
}
=head1 AUTHOR

View File

@ -1,4 +1,4 @@
package Koha::Patron::Message::Transport::Type;
package Koha::Patron::MessagePreference::Transport::Type;
# Copyright Koha-Suomi Oy 2016
#
@ -25,7 +25,7 @@ use base qw(Koha::Object);
=head1 NAME
Koha::Patron::Message::Transport::Type - Koha Patron Message Transport Type
Koha::Patron::MessagePreference::Transport::Type - Koha Patron Message Transport Type
object class
=head1 API

View File

@ -1,4 +1,4 @@
package Koha::Patron::Message::Transport::Types;
package Koha::Patron::MessagePreference::Transport::Types;
# Copyright Koha-Suomi Oy 2016
#
@ -20,13 +20,13 @@ package Koha::Patron::Message::Transport::Types;
use Modern::Perl;
use Koha::Database;
use Koha::Patron::Message::Transport::Type;
use Koha::Patron::MessagePreference::Transport::Type;
use base qw(Koha::Objects);
=head1 NAME
Koha::Patron::Message::Transport::Types - Koha Patron Message Transport Types
Koha::Patron::MessagePreference::Transport::Types - Koha Patron Message Transport Types
object class
=head1 API
@ -50,7 +50,7 @@ sub _type {
=cut
sub object_class {
return 'Koha::Patron::Message::Transport::Type';
return 'Koha::Patron::MessagePreference::Transport::Type';
}
=head1 AUTHOR

View File

@ -1,4 +1,4 @@
package Koha::Patron::Message::Transports;
package Koha::Patron::MessagePreference::Transports;
# Copyright Koha-Suomi Oy 2016
#
@ -20,13 +20,13 @@ package Koha::Patron::Message::Transports;
use Modern::Perl;
use Koha::Database;
use Koha::Patron::Message::Transport;
use Koha::Patron::MessagePreference::Transport;
use base qw(Koha::Objects);
=head1 NAME
Koha::Patron::Message::Transports - Koha Patron Message Transports object class
Koha::Patron::MessagePreference::Transports - Koha Patron Message Transports object class
=head1 API
@ -49,7 +49,7 @@ sub _type {
=cut
sub object_class {
return 'Koha::Patron::Message::Transport';
return 'Koha::Patron::MessagePreference::Transport';
}
=head1 AUTHOR

View File

@ -1,4 +1,4 @@
package Koha::Patron::Message::Preferences;
package Koha::Patron::MessagePreferences;
# Copyright Koha-Suomi Oy 2016
#
@ -20,15 +20,15 @@ package Koha::Patron::Message::Preferences;
use Modern::Perl;
use Koha::Database;
use Koha::Patron::Message::Attributes;
use Koha::Patron::Message::Preference;
use Koha::Patron::Message::Transports;
use Koha::Patron::MessagePreference::Attributes;
use Koha::Patron::MessagePreference;
use Koha::Patron::MessagePreference::Transports;
use base qw(Koha::Objects);
=head1 NAME
Koha::Patron::Message::Preferences - Koha Patron Message Preferences object class
Koha::Patron::MessagePreferences - Koha Patron Message Preferences object class
=head1 API
@ -38,7 +38,7 @@ Koha::Patron::Message::Preferences - Koha Patron Message Preferences object clas
=head3 find_with_message_name
Koha::Patron::Message::Preferences->find_with_message_name({
Koha::Patron::MessagePreferences->find_with_message_name({
borrowernumber => 123,
message_name => 'Hold_Filled',
});
@ -51,7 +51,7 @@ sub find_with_message_name {
my ($self, $id) = @_;
if (ref($id) eq "HASH" && $id->{'message_name'}) {
my $attr = Koha::Patron::Message::Attributes->find({
my $attr = Koha::Patron::MessagePreference::Attributes->find({
message_name => $id->{'message_name'},
});
$id->{'message_attribute_id'} = ($attr) ?
@ -64,7 +64,7 @@ sub find_with_message_name {
=head3 get_options
my $messaging_options = Koha::Patron::Message::Preferences->get_options
my $messaging_options = Koha::Patron::MessagePreferences->get_options
Returns an ARRAYref of HASHrefs on available messaging options.
@ -73,7 +73,7 @@ Returns an ARRAYref of HASHrefs on available messaging options.
sub get_options {
my ($self) = @_;
my $transports = Koha::Patron::Message::Transports->search(undef,
my $transports = Koha::Patron::MessagePreference::Transports->search(undef,
{
join => ['message_attribute'],
'+select' => ['message_attribute.message_name', 'message_attribute.takes_days'],
@ -99,13 +99,13 @@ sub get_options {
=head3 search_with_message_name
Koha::Patron::Message::Preferences->search_with_message_name({
Koha::Patron::MessagePreferences->search_with_message_name({
borrowernumber => 123,
message_name => 'Hold_Filled',
});
Converts C<message_name> into C<message_attribute_id> and continues search. Use
Koha::Patron::Message::Preferences->search with a proper join for more complicated
Koha::Patron::MessagePreferences->search with a proper join for more complicated
searches.
=cut
@ -114,7 +114,7 @@ sub search_with_message_name {
my ($self, $params, $attributes) = @_;
if (ref($params) eq "HASH" && $params->{'message_name'}) {
my $attr = Koha::Patron::Message::Attributes->find({
my $attr = Koha::Patron::MessagePreference::Attributes->find({
message_name => $params->{'message_name'},
});
$params->{'message_attribute_id'} = ($attr) ?
@ -138,7 +138,7 @@ sub _type {
=cut
sub object_class {
return 'Koha::Patron::Message::Preference';
return 'Koha::Patron::MessagePreference';
}
=head1 AUTHOR

View File

@ -195,10 +195,10 @@ __PACKAGE__->many_to_many(
# You can replace this text with custom content, and it will be preserved on regeneration
sub koha_object_class {
'Koha::Patron::Message::Preference';
'Koha::Patron::MessagePreference';
}
sub koha_objects_class {
'Koha::Patron::Message::Preferences';
'Koha::Patron::MessagePreferences';
}
1;

View File

@ -114,10 +114,10 @@ __PACKAGE__->belongs_to(
# You can replace this text with custom content, and it will be preserved on regeneration
sub koha_object_class {
'Koha::Patron::Message::Transport::Preference';
'Koha::Patron::MessagePreference::Transport::Preference';
}
sub koha_objects_class {
'Koha::Patron::Message::Transport::Preferences';
'Koha::Patron::MessagePreference::Transport::Preferences';
}
1;

View File

@ -119,10 +119,10 @@ __PACKAGE__->has_many(
# You can replace this text with custom content, and it will be preserved on regeneration
sub koha_object_class {
'Koha::Patron::Message::Attribute';
'Koha::Patron::MessagePreference::Attribute';
}
sub koha_objects_class {
'Koha::Patron::Message::Attributes';
'Koha::Patron::MessagePreference::Attributes';
}
1;

View File

@ -136,10 +136,10 @@ __PACKAGE__->belongs_to(
# You can replace this text with custom content, and it will be preserved on regeneration
sub koha_object_class {
'Koha::Patron::Message::Transport';
'Koha::Patron::MessagePreference::Transport';
}
sub koha_objects_class {
'Koha::Patron::Message::Transports';
'Koha::Patron::MessagePreference::Transports';
}
1;

View File

@ -157,10 +157,10 @@ __PACKAGE__->many_to_many(
# You can replace this text with custom content, and it will be preserved on regeneration
sub koha_object_class {
'Koha::Patron::Message::Transport::Type';
'Koha::Patron::MessagePreference::Transport::Type';
}
sub koha_objects_class {
'Koha::Patron::Message::Transport::Types';
'Koha::Patron::MessagePreference::Transport::Types';
}
1;

View File

@ -28,26 +28,26 @@ my $schema = Koha::Database->new->schema;
subtest 'Test class imports' => sub {
plan tests => 2;
use_ok('Koha::Patron::Message::Attribute');
use_ok('Koha::Patron::Message::Attributes');
use_ok('Koha::Patron::MessagePreference::Attribute');
use_ok('Koha::Patron::MessagePreference::Attributes');
};
subtest 'Test Koha::Patron::Message::Attributes' => sub {
subtest 'Test Koha::Patron::MessagePreference::Attributes' => sub {
plan tests => 6;
$schema->storage->txn_begin;
Koha::Patron::Message::Attribute->new({
Koha::Patron::MessagePreference::Attribute->new({
message_name => 'Test_Attribute'
})->store;
Koha::Patron::Message::Attribute->new({
Koha::Patron::MessagePreference::Attribute->new({
message_name => 'Test_Attribute2',
takes_days => 1
})->store;
my $attribute = Koha::Patron::Message::Attributes->find({
my $attribute = Koha::Patron::MessagePreference::Attributes->find({
message_name => 'Test_Attribute' });
my $attribute2 = Koha::Patron::Message::Attributes->find({
my $attribute2 = Koha::Patron::MessagePreference::Attributes->find({
message_name => 'Test_Attribute2' });
is($attribute->message_name, 'Test_Attribute',
@ -61,10 +61,10 @@ subtest 'Test Koha::Patron::Message::Attributes' => sub {
$attribute->delete;
$attribute2->delete;
is(Koha::Patron::Message::Attributes->find({
is(Koha::Patron::MessagePreference::Attributes->find({
message_name => 'Test_Attribute' }), undef,
'Deleted the first message attribute.');
is(Koha::Patron::Message::Attributes->find({
is(Koha::Patron::MessagePreference::Attributes->find({
message_name => 'Test_Attribute2' }), undef,
'Deleted the second message attribute.');

View File

@ -26,10 +26,10 @@ use t::lib::TestBuilder;
use Koha::Notice::Templates;
use Koha::Patron::Categories;
use Koha::Patron::Message::Attributes;
use Koha::Patron::Message::Preferences;
use Koha::Patron::Message::Transport::Types;
use Koha::Patron::Message::Transports;
use Koha::Patron::MessagePreference::Attributes;
use Koha::Patron::MessagePreferences;
use Koha::Patron::MessagePreference::Transport::Types;
use Koha::Patron::MessagePreference::Transports;
use Koha::Patrons;
my $schema = Koha::Database->new->schema;
@ -38,21 +38,21 @@ my $builder = t::lib::TestBuilder->new;
subtest 'Test class imports' => sub {
plan tests => 2;
use_ok('Koha::Patron::Message::Transport::Preference');
use_ok('Koha::Patron::Message::Transport::Preferences');
use_ok('Koha::Patron::MessagePreference::Transport::Preference');
use_ok('Koha::Patron::MessagePreference::Transport::Preferences');
};
subtest 'Test Koha::Patron::Message::Transport::Preferences' => sub {
subtest 'Test Koha::Patron::MessagePreference::Transport::Preferences' => sub {
plan tests => 2;
$schema->storage->txn_begin;
my $attribute = $builder->build_object({ class => 'Koha::Patron::Message::Attributes' });
my $mtt = $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' });
my $attribute = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Attributes' });
my $mtt = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' });
my $letter = build_a_test_letter({
mtt => $mtt->message_transport_type
});
Koha::Patron::Message::Transport->new({
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $attribute->message_attribute_id,
message_transport_type => $mtt->message_transport_type,
is_digest => 0,
@ -62,7 +62,7 @@ subtest 'Test Koha::Patron::Message::Transport::Preferences' => sub {
subtest 'For a patron' => sub {
my $patron = $builder->build_object({ class => 'Koha::Patrons' });
my $preference = Koha::Patron::Message::Preference->new({
my $preference = Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $attribute->message_attribute_id,
wants_digest => 0,
@ -70,15 +70,15 @@ subtest 'Test Koha::Patron::Message::Transport::Preferences' => sub {
})->store;
my $pref_id = $preference->borrower_message_preference_id;
my $transport_pref = Koha::Patron::Message::Transport::Preference->new({
my $transport_pref = Koha::Patron::MessagePreference::Transport::Preference->new({
borrower_message_preference_id => $pref_id,
message_transport_type => $mtt->message_transport_type,
})->store;
is(ref($transport_pref), 'Koha::Patron::Message::Transport::Preference',
is(ref($transport_pref), 'Koha::Patron::MessagePreference::Transport::Preference',
'Added a new messaging transport preference for patron.');
$transport_pref->delete;
is(Koha::Patron::Message::Transport::Preferences->search({
is(Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id => $pref_id,
message_transport_type => $mtt->message_transport_type,
})->count, 0, 'Deleted the messaging transport preference.');
@ -86,7 +86,7 @@ subtest 'Test Koha::Patron::Message::Transport::Preferences' => sub {
subtest 'For a category' => sub {
my $category = $builder->build_object({ class => 'Koha::Patron::Categories' });
my $preference = Koha::Patron::Message::Preference->new({
my $preference = Koha::Patron::MessagePreference->new({
categorycode => $category->categorycode,
message_attribute_id => $attribute->message_attribute_id,
wants_digest => 0,
@ -94,15 +94,15 @@ subtest 'Test Koha::Patron::Message::Transport::Preferences' => sub {
})->store;
my $pref_id = $preference->borrower_message_preference_id;
my $transport_pref = Koha::Patron::Message::Transport::Preference->new({
my $transport_pref = Koha::Patron::MessagePreference::Transport::Preference->new({
borrower_message_preference_id => $pref_id,
message_transport_type => $mtt->message_transport_type,
})->store;
is(ref($transport_pref), 'Koha::Patron::Message::Transport::Preference',
is(ref($transport_pref), 'Koha::Patron::MessagePreference::Transport::Preference',
'Added a new messaging transport preference for category.');
$transport_pref->delete;
is(Koha::Patron::Message::Transport::Preferences->search({
is(Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id => $pref_id,
message_transport_type => $mtt->message_transport_type,
})->count, 0, 'Deleted the messaging transport preference.');

View File

@ -28,16 +28,16 @@ my $schema = Koha::Database->new->schema;
subtest 'Test class imports' => sub {
plan tests => 2;
use_ok('Koha::Patron::Message::Transport::Type');
use_ok('Koha::Patron::Message::Transport::Types');
use_ok('Koha::Patron::MessagePreference::Transport::Type');
use_ok('Koha::Patron::MessagePreference::Transport::Types');
};
subtest 'Test Koha::Patron::Message::Transport::Types' => sub {
subtest 'Test Koha::Patron::MessagePreference::Transport::Types' => sub {
plan tests => 2;
$schema->storage->txn_begin;
my $transport_type = Koha::Patron::Message::Transport::Type->new({
my $transport_type = Koha::Patron::MessagePreference::Transport::Type->new({
message_transport_type => 'test'
})->store;
@ -45,7 +45,7 @@ subtest 'Test Koha::Patron::Message::Transport::Types' => sub {
'Added a new message transport type.');
$transport_type->delete;
is(Koha::Patron::Message::Transport::Types->find('test'), undef,
is(Koha::Patron::MessagePreference::Transport::Types->find('test'), undef,
'Deleted the message transport type.');
$schema->storage->txn_rollback;

View File

@ -24,8 +24,8 @@ use Test::More tests => 2;
use t::lib::TestBuilder;
use Koha::Notice::Templates;
use Koha::Patron::Message::Attributes;
use Koha::Patron::Message::Transport::Types;
use Koha::Patron::MessagePreference::Attributes;
use Koha::Patron::MessagePreference::Transport::Types;
my $schema = Koha::Database->new->schema;
my $builder = t::lib::TestBuilder->new;
@ -33,22 +33,22 @@ my $builder = t::lib::TestBuilder->new;
subtest 'Test class imports' => sub {
plan tests => 2;
use_ok('Koha::Patron::Message::Transport');
use_ok('Koha::Patron::Message::Transports');
use_ok('Koha::Patron::MessagePreference::Transport');
use_ok('Koha::Patron::MessagePreference::Transports');
};
subtest 'Test Koha::Patron::Message::Transports' => sub {
subtest 'Test Koha::Patron::MessagePreference::Transports' => sub {
plan tests => 2;
$schema->storage->txn_begin;
my $attribute = $builder->build_object({ class => 'Koha::Patron::Message::Attributes' });
my $mtt = $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' });
my $attribute = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Attributes' });
my $mtt = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' });
my $letter = build_a_test_letter({
mtt => $mtt->message_transport_type
});
my $transport = Koha::Patron::Message::Transport->new({
my $transport = Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $attribute->message_attribute_id,
message_transport_type => $mtt->message_transport_type,
is_digest => 0,
@ -60,7 +60,7 @@ subtest 'Test Koha::Patron::Message::Transports' => sub {
'Added a new messaging transport.');
$transport->delete;
is(Koha::Patron::Message::Transports->search({
is(Koha::Patron::MessagePreference::Transports->search({
message_attribute_id => $attribute->message_attribute_id,
message_transport_type => $mtt->message_transport_type,
is_digest => 0

View File

@ -28,9 +28,9 @@ use C4::Context;
use Koha::Notice::Templates;
use Koha::Patron::Categories;
use Koha::Patron::Message::Attributes;
use Koha::Patron::Message::Transport::Types;
use Koha::Patron::Message::Transports;
use Koha::Patron::MessagePreference::Attributes;
use Koha::Patron::MessagePreference::Transport::Types;
use Koha::Patron::MessagePreference::Transports;
use Koha::Patrons;
use File::Temp qw/tempfile/;
@ -42,19 +42,19 @@ my $builder = t::lib::TestBuilder->new;
subtest 'Test class imports' => sub {
plan tests => 2;
use_ok('Koha::Patron::Message::Preference');
use_ok('Koha::Patron::Message::Preferences');
use_ok('Koha::Patron::MessagePreference');
use_ok('Koha::Patron::MessagePreferences');
};
subtest 'Test Koha::Patron::Message::Preferences' => sub {
subtest 'Test Koha::Patron::MessagePreferences' => sub {
plan tests => 2;
$schema->storage->txn_begin;
my $attribute = $builder->build_object({ class => 'Koha::Patron::Message::Attributes' });
my $attribute = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Attributes' });
my $letter = build_a_test_letter();
my $mtt = $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' });
Koha::Patron::Message::Transport->new({
my $mtt = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' });
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $attribute->message_attribute_id,
message_transport_type => $mtt->message_transport_type,
is_digest => 0,
@ -66,14 +66,14 @@ subtest 'Test Koha::Patron::Message::Preferences' => sub {
plan tests => 3;
my $patron = $builder->build_object({ class => 'Koha::Patrons' });
Koha::Patron::Message::Preference->new({
Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $attribute->message_attribute_id,
wants_digest => 0,
days_in_advance => undef,
})->store;
my $preference = Koha::Patron::Message::Preferences->find({
my $preference = Koha::Patron::MessagePreferences->find({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $attribute->message_attribute_id
});
@ -83,16 +83,16 @@ subtest 'Test Koha::Patron::Message::Preferences' => sub {
subtest 'Test set not throwing an exception on duplicate object' => sub {
plan tests => 1;
Koha::Patron::Message::Attributes->find({
Koha::Patron::MessagePreference::Attributes->find({
message_attribute_id => $attribute->message_attribute_id
})->set({ takes_days => 1 })->store;
$preference->set({ days_in_advance => 1 })->store;
is(ref($preference), 'Koha::Patron::Message::Preference',
is(ref($preference), 'Koha::Patron::MessagePreference',
'Updating the preference does not cause duplicate object exception');
};
$preference->delete;
is(Koha::Patron::Message::Preferences->search({
is(Koha::Patron::MessagePreferences->search({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $attribute->message_attribute_id
})->count, 0, 'Deleted the messaging preference.');
@ -100,14 +100,14 @@ subtest 'Test Koha::Patron::Message::Preferences' => sub {
subtest 'Test for a category' => sub {
my $category = $builder->build_object({ class => 'Koha::Patron::Categories' });
Koha::Patron::Message::Preference->new({
Koha::Patron::MessagePreference->new({
categorycode => $category->categorycode,
message_attribute_id => $attribute->message_attribute_id,
wants_digest => 0,
days_in_advance => undef,
})->store;
my $preference = Koha::Patron::Message::Preferences->find({
my $preference = Koha::Patron::MessagePreferences->find({
categorycode => $category->categorycode,
message_attribute_id => $attribute->message_attribute_id
});
@ -115,7 +115,7 @@ subtest 'Test Koha::Patron::Message::Preferences' => sub {
'Added a new messaging preference for category.');
$preference->delete;
is(Koha::Patron::Message::Preferences->search({
is(Koha::Patron::MessagePreferences->search({
categorycode => $category->categorycode,
message_attribute_id => $attribute->message_attribute_id
})->count, 0, 'Deleted the messaging preference.');
@ -124,31 +124,31 @@ subtest 'Test Koha::Patron::Message::Preferences' => sub {
$schema->storage->txn_rollback;
};
subtest 'Test Koha::Patron::Message::Preferences->get_options' => sub {
subtest 'Test Koha::Patron::MessagePreferences->get_options' => sub {
plan tests => 2;
subtest 'Test method availability and return value' => sub {
plan tests => 3;
ok(Koha::Patron::Message::Preferences->can('get_options'),
ok(Koha::Patron::MessagePreferences->can('get_options'),
'Method get_options is available.');
ok(my $options = Koha::Patron::Message::Preferences->get_options,
ok(my $options = Koha::Patron::MessagePreferences->get_options,
'Called get_options successfully.');
is(ref($options), 'ARRAY', 'get_options returns a ARRAYref');
};
subtest 'Make sure options are correct' => sub {
$schema->storage->txn_begin;
my $options = Koha::Patron::Message::Preferences->get_options;
my $options = Koha::Patron::MessagePreferences->get_options;
foreach my $option (@$options) {
my $n = $option->{'message_name'};
my $attr = Koha::Patron::Message::Attributes->find($option->{'message_attribute_id'});
my $attr = Koha::Patron::MessagePreference::Attributes->find($option->{'message_attribute_id'});
is($option->{'message_attribute_id'}, $attr->message_attribute_id,
'$n: message_attribute_id is set');
is($option->{'message_name'}, $attr->message_name, '$n: message_name is set');
is($option->{'takes_days'}, $attr->takes_days, '$n: takes_days is set');
my $transports = Koha::Patron::Message::Transports->search({
my $transports = Koha::Patron::MessagePreference::Transports->search({
message_attribute_id => $option->{'message_attribute_id'},
is_digest => $option->{'has_digest'} || 0,
});
@ -171,26 +171,26 @@ subtest 'Add preferences from defaults' => sub {
my ($default, $mtt1, $mtt2) = build_a_test_category_preference({
patron => $patron,
});
ok(Koha::Patron::Message::Preference->new_from_default({
ok(Koha::Patron::MessagePreference->new_from_default({
borrowernumber => $patron->borrowernumber,
categorycode => $patron->categorycode,
message_attribute_id => $default->message_attribute_id,
})->store, 'Added a default preference to patron.');
ok(my $pref = Koha::Patron::Message::Preferences->find({
ok(my $pref = Koha::Patron::MessagePreferences->find({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $default->message_attribute_id,
}), 'Found the default preference from patron.');
is(Koha::Patron::Message::Transport::Preferences->search({
is(Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id => $pref->borrower_message_preference_id
})->count, 2, 'Found the two transport types that we set earlier');
$schema->storage->txn_rollback;
};
subtest 'Test Koha::Patron::Message::Preference->message_transport_types' => sub {
subtest 'Test Koha::Patron::MessagePreference->message_transport_types' => sub {
plan tests => 4;
ok(Koha::Patron::Message::Preference->can('message_transport_types'),
ok(Koha::Patron::MessagePreference->can('message_transport_types'),
'Method message_transport_types available');
subtest 'get message_transport_types' => sub {
@ -202,25 +202,25 @@ subtest 'Test Koha::Patron::Message::Preference->message_transport_types' => sub
my ($preference, $mtt1, $mtt2) = build_a_test_complete_preference({
patron => $patron
});
Koha::Patron::Message::Transport::Preferences->search({
Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id => $preference->borrower_message_preference_id,
})->delete;
Koha::Patron::Message::Transport::Preference->new({
Koha::Patron::MessagePreference::Transport::Preference->new({
borrower_message_preference_id => $preference->borrower_message_preference_id,
message_transport_type => $mtt1->message_transport_type,
})->store;
Koha::Patron::Message::Transport::Preference->new({
Koha::Patron::MessagePreference::Transport::Preference->new({
borrower_message_preference_id => $preference->borrower_message_preference_id,
message_transport_type => $mtt2->message_transport_type,
})->store;
my $stored_transports = Koha::Patron::Message::Transport::Preferences->search({
my $stored_transports = Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id => $preference->borrower_message_preference_id,
});
my $transport1 = Koha::Patron::Message::Transports->find({
my $transport1 = Koha::Patron::MessagePreference::Transports->find({
message_attribute_id => $preference->message_attribute_id,
message_transport_type => $mtt1->message_transport_type,
});
my $transport2 = Koha::Patron::Message::Transports->find({
my $transport2 = Koha::Patron::MessagePreference::Transports->find({
message_attribute_id => $preference->message_attribute_id,
message_transport_type => $mtt2->message_transport_type,
});
@ -255,19 +255,19 @@ HERE
my $appenders = Log::Log4perl->appenders;
my $appender = Log::Log4perl->appenders->{OPAC};
my $pref = Koha::Patron::Message::Preferences->find(
my $pref = Koha::Patron::MessagePreferences->find(
$preference->borrower_message_preference_id
);
my $transports = $pref->message_transport_types;
is($appender, undef, 'Nothing in buffer yet');
my $mtt_new = $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' });
Koha::Patron::Message::Transport::Preference->new({
my $mtt_new = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' });
Koha::Patron::MessagePreference::Transport::Preference->new({
borrower_message_preference_id =>
$pref->borrower_message_preference_id,
message_transport_type => $mtt_new->message_transport_type,
})->store;
$pref = Koha::Patron::Message::Preferences->find(
$pref = Koha::Patron::MessagePreferences->find(
$pref->borrower_message_preference_id
);
$transports = $pref->message_transport_types;
@ -294,12 +294,12 @@ HERE
my $mtt1_str = $mtt1->message_transport_type;
my $mtt2_str = $mtt2->message_transport_type;
# 1/3, use message_transport_types(list)
Koha::Patron::Message::Transport::Preferences->search({
Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id => $preference->borrower_message_preference_id,
})->delete;
ok($preference->message_transport_types($mtt1_str, $mtt2_str)->store,
'1/3 Set returned true.');
my $stored_transports = Koha::Patron::Message::Transport::Preferences->search({
my $stored_transports = Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id => $preference->borrower_message_preference_id,
'-or' => [
message_transport_type => $mtt1_str,
@ -309,12 +309,12 @@ HERE
is($stored_transports->count, 2, 'Two transports selected');
# 2/3, use message_transport_types(ARRAYREF)
Koha::Patron::Message::Transport::Preferences->search({
Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id => $preference->borrower_message_preference_id,
})->delete;
ok($preference->message_transport_types([$mtt1_str, $mtt2_str])->store,
'2/3 Set returned true.');
$stored_transports = Koha::Patron::Message::Transport::Preferences->search({
$stored_transports = Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id => $preference->borrower_message_preference_id,
'-or' => [
message_transport_type => $mtt1_str,
@ -324,13 +324,13 @@ HERE
is($stored_transports->count, 2, 'Two transports selected');
# 3/3, use set({ message_transport_types => ARRAYREF })
Koha::Patron::Message::Transport::Preferences->search({
Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id => $preference->borrower_message_preference_id,
})->delete;
ok($preference->set({
message_transport_types => [$mtt1_str, $mtt2_str]})->store,
'3/3 Set returned true.');
$stored_transports = Koha::Patron::Message::Transport::Preferences->search({
$stored_transports = Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id => $preference->borrower_message_preference_id,
'-or' => [
message_transport_type => $mtt1_str,
@ -340,34 +340,34 @@ HERE
is($stored_transports->count, 2, 'Two transports selected');
# Test contact information validation
eval { Koha::Patron::Message::Transport::Types->new({
eval { Koha::Patron::MessagePreference::Transport::Types->new({
message_transport_type => 'email'
})->store };
eval { Koha::Patron::Message::Transport::Types->new({
eval { Koha::Patron::MessagePreference::Transport::Types->new({
message_transport_type => 'itiva'
})->store };
eval { Koha::Patron::Message::Transport::Types->new({
eval { Koha::Patron::MessagePreference::Transport::Types->new({
message_transport_type => 'phone'
})->store };
eval { Koha::Patron::Message::Transport::Types->new({
eval { Koha::Patron::MessagePreference::Transport::Types->new({
message_transport_type => 'sms'
})->store };
Koha::Patron::Message::Transport->new({
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $preference->message_attribute_id,
message_transport_type => 'email',
is_digest => 1
})->store;
Koha::Patron::Message::Transport->new({
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $preference->message_attribute_id,
message_transport_type => 'itiva',
is_digest => 1
})->store;
Koha::Patron::Message::Transport->new({
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $preference->message_attribute_id,
message_transport_type => 'phone',
is_digest => 1
})->store;
Koha::Patron::Message::Transport->new({
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $preference->message_attribute_id,
message_transport_type => 'sms',
is_digest => 1
@ -377,9 +377,9 @@ HERE
eval {
$preference->message_transport_types('email')->store;
};
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::EmailAddressRequired',
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::EmailAddressRequired',
'Adding a message preference with invalid message_transport_type'
.' => Koha::Exceptions::Patron::Message::Preference::EmailAddressRequired');
.' => Koha::Exceptions::Patron::MessagePreference::EmailAddressRequired');
is ($@->message_name, $preference->message_name, 'The previous exception '
.' tells us it which message name it was.');
is ($@->borrowernumber, $patron->borrowernumber, 'The previous exception '
@ -387,9 +387,9 @@ HERE
eval {
$preference->message_transport_types('itiva')->store;
};
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::TalkingTechItivaPhoneNotificationRequired',
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::TalkingTechItivaPhoneNotificationRequired',
'Adding a message preference with invalid message_transport_type'
.' => Koha::Exceptions::Patron::Message::Preference::TalkingTechItivaPhoneNotificationRequired');
.' => Koha::Exceptions::Patron::MessagePreference::TalkingTechItivaPhoneNotificationRequired');
is ($@->message_name, $preference->message_name, 'The previous exception '
.' tells us it which message name it was.');
is ($@->borrowernumber, $patron->borrowernumber, 'The previous exception '
@ -397,9 +397,9 @@ HERE
eval {
$preference->message_transport_types('phone')->store;
};
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::PhoneNumberRequired',
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::PhoneNumberRequired',
'Adding a message preference with invalid message_transport_type'
.' => Koha::Exceptions::Patron::Message::Preference::PhoneNumberRequired');
.' => Koha::Exceptions::Patron::MessagePreference::PhoneNumberRequired');
is ($@->message_name, $preference->message_name, 'The previous exception '
.' tells us it which message name it was.');
is ($@->borrowernumber, $patron->borrowernumber, 'The previous exception '
@ -407,9 +407,9 @@ HERE
eval {
$preference->message_transport_types('sms')->store;
};
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::SMSNumberRequired',
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::SMSNumberRequired',
'Adding a message preference with invalid message_transport_type'
.' => Koha::Exceptions::Patron::Message::Preference::SMSNumberRequired');
.' => Koha::Exceptions::Patron::MessagePreference::SMSNumberRequired');
is ($@->message_name, $preference->message_name, 'The previous exception '
.' tells us it which message name it was.');
is ($@->borrowernumber, $patron->borrowernumber, 'The previous exception '
@ -425,16 +425,16 @@ HERE
my $patron = $builder->build_object({ class => 'Koha::Patrons' });
my $letter = build_a_test_letter();
my $attribute = $builder->build_object({ class => 'Koha::Patron::Message::Attributes' });
my $mtt = $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' });
Koha::Patron::Message::Transport->new({
my $attribute = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Attributes' });
my $mtt = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' });
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $attribute->message_attribute_id,
message_transport_type => $mtt->message_transport_type,
is_digest => 0,
letter_module => $letter->module,
letter_code => $letter->code,
})->store;
ok(my $preference = Koha::Patron::Message::Preference->new({
ok(my $preference = Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $attribute->message_attribute_id,
wants_digest => 0,
@ -443,7 +443,7 @@ HERE
})->store, 'Added a new messaging preference and transport types to patron.');
ok($preference->message_transport_types->{$mtt->message_transport_type},
'The transport type is stored in the object.');
my $stored_transports = Koha::Patron::Message::Transport::Preferences->search({
my $stored_transports = Koha::Patron::MessagePreference::Transport::Preferences->search({
borrower_message_preference_id => $preference->borrower_message_preference_id,
});
is($stored_transports->next->message_transport_type, $mtt->message_transport_type,
@ -453,18 +453,18 @@ HERE
};
};
subtest 'Test Koha::Patron::Message::Preference->message_name' => sub {
subtest 'Test Koha::Patron::MessagePreference->message_name' => sub {
plan tests => 1;
$schema->storage->txn_begin;
my $patron = $builder->build_object({ class => 'Koha::Patrons' });
my $attribute = $builder->build_object({ class => 'Koha::Patron::Message::Attributes' });
my $attribute = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Attributes' });
my ($preference, $mtt1, $mtt2) = build_a_test_complete_preference({
patron => $patron,
attr => $attribute,
});
my $message_name_pref = Koha::Patron::Message::Preferences->search_with_message_name({
my $message_name_pref = Koha::Patron::MessagePreferences->search_with_message_name({
borrowernumber => $patron->{'borrowernumber'},
message_name => $attribute->message_name,
})->next;
@ -473,7 +473,7 @@ subtest 'Test Koha::Patron::Message::Preference->message_name' => sub {
$schema->storage->txn_rollback;
};
subtest 'Test Koha::Patron::Message::Preference->mtt_deliverable' => sub {
subtest 'Test Koha::Patron::MessagePreference->mtt_deliverable' => sub {
plan tests => 10;
$schema->storage->txn_begin;
@ -484,34 +484,34 @@ subtest 'Test Koha::Patron::Message::Preference->mtt_deliverable' => sub {
});
# Test email and smsalertnumber validation
eval { Koha::Patron::Message::Transport::Types->new({
eval { Koha::Patron::MessagePreference::Transport::Types->new({
message_transport_type => 'email'
})->store };
eval { Koha::Patron::Message::Transport::Types->new({
eval { Koha::Patron::MessagePreference::Transport::Types->new({
message_transport_type => 'sms'
})->store };
eval { Koha::Patron::Message::Transport::Types->new({
eval { Koha::Patron::MessagePreference::Transport::Types->new({
message_transport_type => 'phone'
})->store };
eval { Koha::Patron::Message::Transport::Types->new({
eval { Koha::Patron::MessagePreference::Transport::Types->new({
message_transport_type => 'itiva'
})->store };
Koha::Patron::Message::Transport->new({
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $preference->message_attribute_id,
message_transport_type => 'email',
is_digest => 1
})->store;
Koha::Patron::Message::Transport->new({
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $preference->message_attribute_id,
message_transport_type => 'sms',
is_digest => 1
})->store;
Koha::Patron::Message::Transport->new({
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $preference->message_attribute_id,
message_transport_type => 'phone',
is_digest => 1
})->store;
Koha::Patron::Message::Transport->new({
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $preference->message_attribute_id,
message_transport_type => 'itiva',
is_digest => 1
@ -557,7 +557,7 @@ subtest 'Test adding a new preference with invalid parameters' => sub {
subtest 'Missing parameters' => sub {
plan tests => 1;
eval { Koha::Patron::Message::Preference->new->store };
eval { Koha::Patron::MessagePreference->new->store };
is(ref $@, 'Koha::Exceptions::MissingParameter',
'Adding a message preference without parameters'
.' => Koha::Exceptions::MissingParameter');
@ -569,7 +569,7 @@ subtest 'Test adding a new preference with invalid parameters' => sub {
$schema->storage->txn_begin;
my $patron = $builder->build_object({ class => 'Koha::Patrons' });
eval { Koha::Patron::Message::Preference->new({
eval { Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
categorycode => $patron->categorycode,
})->store };
@ -585,14 +585,14 @@ subtest 'Test adding a new preference with invalid parameters' => sub {
$schema->storage->txn_begin;
eval { Koha::Patron::Message::Preference->new({
eval { Koha::Patron::MessagePreference->new({
borrowernumber => -999,
})->store };
is(ref $@, 'Koha::Exceptions::Patron::NotFound',
'Adding a message preference with invalid borrowernumber'
.' => Koha::Exceptions::Patron::NotFound');
eval { Koha::Patron::Message::Preference->new({
eval { Koha::Patron::MessagePreference->new({
categorycode => 'nonexistent',
})->store };
is(ref $@, 'Koha::Exceptions::Patron::Category::NotFound',
@ -601,96 +601,96 @@ subtest 'Test adding a new preference with invalid parameters' => sub {
my $attribute = build_a_test_attribute({ takes_days => 0 });
my $patron = $builder->build_object({ class => 'Koha::Patrons' });
eval { Koha::Patron::Message::Preference->new({
eval { Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $attribute->message_attribute_id,
days_in_advance => 10,
})->store };
is(ref $@, 'Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceNotAvailable',
is(ref $@, 'Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceNotAvailable',
'Adding a message preference with days in advance option when not'
.' available => Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceNotAvailable');
.' available => Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceNotAvailable');
$attribute->set({ takes_days => 1 })->store;
eval { Koha::Patron::Message::Preference->new({
eval { Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $attribute->message_attribute_id,
days_in_advance => -1,
})->store };
is(ref $@, 'Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceOutOfRange',
is(ref $@, 'Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceOutOfRange',
'Adding a message preference with days in advance option is out of range'
.' => Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceOutOfRange');
.' => Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceOutOfRange');
is ($@->min, 0, 'The previous exception min value is 0.');
eval { Koha::Patron::Message::Preference->new({
eval { Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $attribute->message_attribute_id,
days_in_advance => 31,
})->store };
is(ref $@, 'Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceOutOfRange',
is(ref $@, 'Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceOutOfRange',
'Adding a message preference with days in advance option is out of range'
.' => Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceOutOfRange');
.' => Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceOutOfRange');
is ($@->max, 30, 'The previous exception max value is 30.');
eval { Koha::Patron::Message::Preference->new({
eval { Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
message_transport_types => ['nonexistent']
})->store };
is (ref $@, 'Koha::Exceptions::Patron::Message::Transport::TypeNotFound',
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::Transport::TypeNotFound',
'Adding a message preference with invalid message_transport_type'
.' => Koha::Exceptions::Patron::Message::Transport::TypeNotFound');
.' => Koha::Exceptions::Patron::MessagePreference::Transport::TypeNotFound');
is ($@->transport_type, 'nonexistent', 'The previous exception '
.'tells us it which transport type it was.');
my $mtt_new = $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' });
my $mtt_new = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' });
eval {
Koha::Patron::Message::Preference->new({
Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $attribute->message_attribute_id,
message_transport_types => [$mtt_new->message_transport_type],
wants_digest => 1,
})->store };
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::NoTransportType',
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::NoTransportType',
'Adding a message preference with invalid message_transport_type'
.' => Koha::Exceptions::Patron::Message::Preference::NoTransportType');
.' => Koha::Exceptions::Patron::MessagePreference::NoTransportType');
is ($@->message_name, $attribute->message_name, 'The previous exception '
.'tells us which message it was.');
is ($@->transport_type, $mtt_new->message_transport_type, 'The previous exception '
.'tells us which message transport type it was.');
eval {
Koha::Patron::Message::Preference->new({
Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $attribute->message_attribute_id,
message_transport_types => [],
wants_digest => 1,
})->store };
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::DigestNotAvailable',
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::DigestNotAvailable',
'Adding a message preference that has no digest setting'
.' => Koha::Exceptions::Patron::Message::Preference::DigestNotAvailable');
.' => Koha::Exceptions::Patron::MessagePreference::DigestNotAvailable');
is ($@->message_name, $attribute->message_name, 'The previous exception tells us'
.' which message it was');
eval {
Koha::Patron::Message::Preference->new({
Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $attribute->message_attribute_id,
message_transport_types => [],
wants_digest => 0,
})->store };
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::DigestRequired',
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::DigestRequired',
'Adding a message preference, that requires digest, with no digest'
.' => Koha::Exceptions::Patron::Message::Preference::DigestRequired');
.' => Koha::Exceptions::Patron::MessagePreference::DigestRequired');
is ($@->message_name, $attribute->message_name, 'The previous exception tells us'
.' which message it was');
eval {
Koha::Patron::Message::Preference->new({
Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
message_attribute_id => -1,
message_transport_types => [],
})->store };
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::AttributeNotFound',
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::AttributeNotFound',
'Adding a message preference with invalid message_transport_type'
.' => KKoha::Exceptions::Patron::Message::Preference::AttributeNotFound');
.' => KKoha::Exceptions::Patron::MessagePreference::AttributeNotFound');
is ($@->message_attribute_id, -1, 'The previous exception tells'
.' us which message attribute id it was.');
@ -702,10 +702,10 @@ subtest 'Test adding a new preference with invalid parameters' => sub {
$schema->storage->txn_begin;
my $attribute = $builder->build_object({ class => 'Koha::Patron::Message::Attributes' });
my $attribute = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Attributes' });
my $letter = build_a_test_letter();
my $mtt = $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' });
Koha::Patron::Message::Transport->new({
my $mtt = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' });
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $attribute->message_attribute_id,
message_transport_type => $mtt->message_transport_type,
is_digest => 0,
@ -713,7 +713,7 @@ subtest 'Test adding a new preference with invalid parameters' => sub {
letter_code => $letter->code,
})->store;
my $patron = $builder->build_object({ class => 'Koha::Patrons' });
my $preference = Koha::Patron::Message::Preference->new({
my $preference = Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $attribute->message_attribute_id,
wants_digest => 0,
@ -721,7 +721,7 @@ subtest 'Test adding a new preference with invalid parameters' => sub {
})->store;
ok($preference->borrower_message_preference_id,
'Added a new messaging preference for patron.');
eval { Koha::Patron::Message::Preference->new({
eval { Koha::Patron::MessagePreference->new({
borrowernumber => $patron->borrowernumber,
message_attribute_id => $attribute->message_attribute_id,
wants_digest => 0,
@ -746,7 +746,7 @@ sub build_a_test_attribute {
value => $params,
});
return Koha::Patron::Message::Attributes->find(
return Koha::Patron::MessagePreference::Attributes->find(
$attribute->{message_attribute_id}
);
}
@ -782,10 +782,10 @@ sub build_a_test_category_preference {
: build_a_test_attribute($params->{days_in_advance});
my $letter = $params->{letter} ? $params->{letter} : build_a_test_letter();
my $mtt1 = $params->{mtt1} ? $params->{mtt1} : $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' });
my $mtt2 = $params->{mtt2} ? $params->{mtt2} : $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' });
my $mtt1 = $params->{mtt1} ? $params->{mtt1} : $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' });
my $mtt2 = $params->{mtt2} ? $params->{mtt2} : $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' });
Koha::Patron::Message::Transport->new({
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $attr->message_attribute_id,
message_transport_type => $mtt1->message_transport_type,
is_digest => $params->{digest} ? 1 : 0,
@ -793,7 +793,7 @@ sub build_a_test_category_preference {
letter_code => $letter->code,
})->store;
Koha::Patron::Message::Transport->new({
Koha::Patron::MessagePreference::Transport->new({
message_attribute_id => $attr->message_attribute_id,
message_transport_type => $mtt2->message_transport_type,
is_digest => $params->{digest} ? 1 : 0,
@ -801,7 +801,7 @@ sub build_a_test_category_preference {
letter_code => $letter->code,
})->store;
my $default = Koha::Patron::Message::Preference->new({
my $default = Koha::Patron::MessagePreference->new({
categorycode => $patron->categorycode,
message_attribute_id => $attr->message_attribute_id,
wants_digest => $params->{digest} ? 1 : 0,
@ -809,11 +809,11 @@ sub build_a_test_category_preference {
? $params->{days_in_advance} : undef,
})->store;
Koha::Patron::Message::Transport::Preference->new({
Koha::Patron::MessagePreference::Transport::Preference->new({
borrower_message_preference_id => $default->borrower_message_preference_id,
message_transport_type => $mtt1->message_transport_type,
})->store;
Koha::Patron::Message::Transport::Preference->new({
Koha::Patron::MessagePreference::Transport::Preference->new({
borrower_message_preference_id => $default->borrower_message_preference_id,
message_transport_type => $mtt2->message_transport_type,
})->store;
@ -827,7 +827,7 @@ sub build_a_test_complete_preference {
my ($default, $mtt1, $mtt2) = build_a_test_category_preference($params);
my $patron = $params->{patron};
$patron->set_default_messaging_preferences;
return (Koha::Patron::Message::Preferences->search({
return (Koha::Patron::MessagePreferences->search({
borrowernumber => $patron->borrowernumber
})->next, $mtt1, $mtt2);
}