From ef322cccbdb666f89001fca46f24a8e070e62c28 Mon Sep 17 00:00:00 2001 From: Lari Taskula Date: Thu, 27 Oct 2016 16:08:50 +0300 Subject: [PATCH] Bug 18595: Move C4::Members::Messaging::GetMessagingPreferences MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch moves C4::Members::Messaging::GetMessagingPreferences to Koha::Patron::MessagePreference(s) The patch makes a heavy touch on core messaging preference features, but should not introduce any visible changes for end user. Keep this in mind if testing. If you notice any changes in Koha, something is probably wrong! To test: Make sure you have enabled the following system preferences: - EnhancedMessagingPreferences ---- GENERAL ---- 1. Apply patch 2. Search Koha source code for references of "GetMessagingPreferences" (grep -r 'GetMessagingPreferences'). 3. Observe no results in source code. ---- UNIT TESTS ---- 1. prove t/db_dependent/Circulation.t 2. prove t/db_dependent/Reserves.t 3. prove t/db_dependent/Koha/Patron/Categories.t 4. prove t/db_dependent/api/v1/patrons.t Signed-off-by: Marc Véron Signed-off-by: David Bourgault Rebased-by: Emmi Takkinen --- C4/Circulation.pm | 5 +- C4/Form/MessagingPreferences.pm | 9 ++-- C4/Members/Messaging.pm | 64 ------------------------- C4/Reserves.pm | 13 +++-- Koha/CurbsidePickup.pm | 1 - Koha/Illrequest.pm | 5 +- Koha/Patron.pm | 6 +-- Koha/Patron/Category.pm | 14 +++--- circ/returns.pl | 9 +++- misc/cronjobs/advance_notices.pl | 44 +++++++++-------- misc/cronjobs/automatic_renewals.pl | 15 +++--- t/db_dependent/Koha/Patron/Categories.t | 6 +-- t/db_dependent/api/v1/patrons.t | 2 +- 13 files changed, 70 insertions(+), 123 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 547c89df48..0a754e3f08 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -49,6 +49,7 @@ use Koha::Illrequests; use Koha::Items; use Koha::Patrons; use Koha::Patron::Debarments qw( DelUniqueDebarment AddUniqueDebarment ); +use Koha::Patron::MessagePreferences; use Koha::Database; use Koha::Libraries; use Koha::Account::Lines; @@ -3595,7 +3596,7 @@ sub SendCirculationAlert { CHECKOUT => 'Item_Checkout', RENEWAL => 'Item_Checkout', ); - my $borrower_preferences = C4::Members::Messaging::GetMessagingPreferences({ + return unless my $borrower_preferences = Koha::Patron::MessagePreferences->find_with_message_name({ borrowernumber => $borrower->{borrowernumber}, message_name => $message_name{$type}, }); @@ -3618,7 +3619,7 @@ sub SendCirculationAlert { } my $schema = Koha::Database->new->schema; - my @transports = keys %{ $borrower_preferences->{transports} }; + my @transports = keys %{ $borrower_preferences->message_transport_types }; # From the MySQL doc: # LOCK TABLES is not transaction-safe and implicitly commits any active transaction before attempting to lock the tables. diff --git a/C4/Form/MessagingPreferences.pm b/C4/Form/MessagingPreferences.pm index be95f83846..55a0f2f2a4 100644 --- a/C4/Form/MessagingPreferences.pm +++ b/C4/Form/MessagingPreferences.pm @@ -132,21 +132,22 @@ sub set_form_values { # walk through the options and update them with these borrower_preferences my $messaging_options = Koha::Patron::MessagePreferences->get_options; PREF: foreach my $option ( @$messaging_options ) { - my $pref = C4::Members::Messaging::GetMessagingPreferences( { %{ $target_params }, message_name => $option->{'message_name'} } ); + my $pref = Koha::Patron::MessagePreferences->find( { %{ $target_params }, message_attribute_id => $option->{'message_attribute_id'} } ); $option->{ $option->{'message_name'} } = 1; # make a hashref of the days, selecting one. if ( $option->{'takes_days'} ) { - my $days_in_advance = $pref->{'days_in_advance'} ? $pref->{'days_in_advance'} : 0; + my $days_in_advance = $pref && $pref->days_in_advance ? $pref->days_in_advance : 0; $option->{days_in_advance} = $days_in_advance; @{$option->{'select_days'}} = map { { day => $_, selected => $_ == $days_in_advance } } ( 0..MAX_DAYS_IN_ADVANCE ); } - foreach my $transport ( keys %{$pref->{'transports'}} ) { + next unless $pref; + foreach my $transport ( keys %{$pref->message_transport_types} ) { $option->{'transports_'.$transport} = 1; } - $option->{'digest'} = 1 if $pref->{'wants_digest'}; + $option->{'digest'} = 1 if $pref->wants_digest; } $template->param(messaging_preferences => $messaging_options); } diff --git a/C4/Members/Messaging.pm b/C4/Members/Messaging.pm index 945b72fb87..d28de2ccd7 100644 --- a/C4/Members/Messaging.pm +++ b/C4/Members/Messaging.pm @@ -35,70 +35,6 @@ This module lets you modify a patron's messaging preferences. =head1 FUNCTIONS -=head2 GetMessagingPreferences - - my $preferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $borrower->{'borrowernumber'}, - message_name => 'Item_Due ' } ); - - my $preferences = C4::Members::Messaging::GetMessagingPreferences( { categorycode => 'LIBRARY', - message_name => 'Item_Due ' } ); - -returns: a hashref of messaging preferences for a borrower or patron category for a particlar message_name - -Requires either a borrowernumber or a categorycode key, but not both. - -message_name argument is a message attribute name. - -=cut - -sub GetMessagingPreferences { - my $params = shift; - - return unless exists $params->{message_name}; - return unless exists $params->{borrowernumber} xor exists $params->{categorycode}; # yes, xor - my $sql = <<'END_SQL'; -SELECT borrower_message_preferences.*, - borrower_message_transport_preferences.message_transport_type, - message_attributes.message_name, - message_attributes.takes_days, - message_transports.is_digest, - message_transports.letter_module, - message_transports.letter_code -FROM borrower_message_preferences -LEFT JOIN borrower_message_transport_preferences -ON borrower_message_transport_preferences.borrower_message_preference_id = borrower_message_preferences.borrower_message_preference_id -LEFT JOIN message_attributes -ON message_attributes.message_attribute_id = borrower_message_preferences.message_attribute_id -LEFT JOIN message_transports -ON message_transports.message_attribute_id = message_attributes.message_attribute_id -AND message_transports.message_transport_type = borrower_message_transport_preferences.message_transport_type -AND message_transports.is_digest = borrower_message_preferences.wants_digest -WHERE message_attributes.message_name = ? -END_SQL - - my @bind_params = ( $params->{'message_name'} ); - if ( exists $params->{'borrowernumber'} ) { - $sql .= " AND borrower_message_preferences.borrowernumber = ? "; - push @bind_params, $params->{borrowernumber}; - } else { - $sql .= " AND borrower_message_preferences.categorycode = ? "; - push @bind_params, $params->{categorycode}; - } - - my $sth = C4::Context->dbh->prepare($sql); - $sth->execute(@bind_params); - my $return; - ROW: while ( my $row = $sth->fetchrow_hashref() ) { - next ROW unless $row->{'message_attribute_id'}; - $return->{'days_in_advance'} = $row->{'days_in_advance'} if defined $row->{'days_in_advance'}; - $return->{'wants_digest'} = $row->{'wants_digest'} if defined $row->{'wants_digest'}; - $return->{'letter_code'} = $row->{'letter_code'}; - next unless defined $row->{'message_transport_type'}; - $return->{'transports'}->{ $row->{'message_transport_type'} } = $row->{'letter_code'}; - } - return $return; -} - =head2 SetMessagingPreference This method defines how a user (or a default for a patron category) wants to get a certain diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 987543e1cd..1785c2c3cc 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -44,6 +44,7 @@ use Koha::ItemTypes; use Koha::Items; use Koha::Libraries; use Koha::Old::Holds; +use Koha::Patron::MessagePreferences; use Koha::Patrons; use Koha::Plugins; @@ -1882,10 +1883,10 @@ sub _koha_notify_reserve { # Try to get the borrower's email address my $to_address = $patron->notice_email_address; - my $messagingprefs = C4::Members::Messaging::GetMessagingPreferences( { - borrowernumber => $borrowernumber, - message_name => 'Hold_Filled' - } ); + my $messagingpref = Koha::Patron::MessagePreferences->find_with_message_name({ + borrowernumber => $borrowernumber, + message_name => 'Hold_Filled', + }); my $library = Koha::Libraries->find( $hold->branchcode ); my $from_email_address = $library->from_email_address; @@ -1924,7 +1925,9 @@ sub _koha_notify_reserve { } ); }; - while ( my ( $mtt, $letter_code ) = each %{ $messagingprefs->{transports} } ) { + my $transports = $messagingpref->message_transport_types if $messagingpref; + foreach my $mtt (keys %{$transports}) { + my $letter_code = $transports->{$mtt}; next if ( ( $mtt eq 'email' and not $to_address ) # No email address or ( $mtt eq 'sms' and not $patron->smsalertnumber ) # No SMS number diff --git a/Koha/CurbsidePickup.pm b/Koha/CurbsidePickup.pm index cbbd1632d3..430fc7b1dd 100644 --- a/Koha/CurbsidePickup.pm +++ b/Koha/CurbsidePickup.pm @@ -24,7 +24,6 @@ use Koha::Database; use base qw(Koha::Object); use C4::Circulation qw( CanBookBeIssued AddIssue ); -use C4::Members::Messaging qw( GetMessagingPreferences ); use C4::Letters qw( GetPreparedLetter EnqueueLetter ); use Koha::Calendar; use Koha::DateUtils qw( dt_from_string ); diff --git a/Koha/Illrequest.pm b/Koha/Illrequest.pm index 723b11843e..19dd147956 100644 --- a/Koha/Illrequest.pm +++ b/Koha/Illrequest.pm @@ -32,6 +32,7 @@ use Koha::Illrequestattributes; use Koha::AuthorisedValue; use Koha::Illrequest::Logger; use Koha::Patron; +use Koha::Patron::MessagePreferences; use Koha::AuthorisedValues; use Koha::Biblios; use Koha::Items; @@ -1504,11 +1505,11 @@ sub send_patron_notice { ); # Get the patron's messaging preferences - my $borrower_preferences = C4::Members::Messaging::GetMessagingPreferences({ + my $borrower_preferences = Koha::Patron::MessagePreferences->find_with_message_name({ borrowernumber => $self->borrowernumber, message_name => $message_name{$notice_code} }); - my @transports = keys %{ $borrower_preferences->{transports} }; + my @transports = keys %{ $borrower_preferences->message_transport_types }; # Notice should come from the library where the request was placed, # not the patrons home library diff --git a/Koha/Patron.pm b/Koha/Patron.pm index 923e079eac..1f2397f1b0 100644 --- a/Koha/Patron.pm +++ b/Koha/Patron.pm @@ -2228,12 +2228,12 @@ sub queue_notice { my $letter_code; $letter_code = $letter_params->{letter_code}; if( $params->{message_name} ){ - my $messaging_prefs = C4::Members::Messaging::GetMessagingPreferences( { + my $messaging_prefs = Koha::Patron::MessagePreferences->find_with_message_name( { borrowernumber => $letter_params->{borrowernumber}, message_name => $params->{message_name} } ); - @message_transports = ( keys %{ $messaging_prefs->{transports} } ); - $letter_code = $messaging_prefs->{transports}->{$message_transports[0]} unless $letter_code; + @message_transports = ( keys %{ $messaging_prefs->message_transport_types } ); + $letter_code = $messaging_prefs->message_transport_types->{$message_transports[0]} unless $letter_code; } else { @message_transports = @{$params->{message_transports}}; } diff --git a/Koha/Patron/Category.pm b/Koha/Patron/Category.pm index b612e21cca..449ae4b0a5 100644 --- a/Koha/Patron/Category.pm +++ b/Koha/Patron/Category.pm @@ -83,19 +83,17 @@ sub default_messaging { my $messaging_options = Koha::Patron::MessagePreferences->get_options; my @messaging; foreach my $option (@$messaging_options) { - my $pref = C4::Members::Messaging::GetMessagingPreferences( - { - categorycode => $self->categorycode, - message_name => $option->{message_name} - } - ); - next unless $pref->{transports}; + my $pref = Koha::Patron::MessagePreferences->find_with_message_name({ + categorycode => $self->categorycode, + message_name => $option->{message_name}, + }); + next if !$pref || $pref && !$pref->message_transport_types; my $brief_pref = { message_attribute_id => $option->{message_attribute_id}, message_name => $option->{message_name}, $option->{'message_name'} => 1, }; - foreach my $transport ( keys %{ $pref->{transports} } ) { + foreach my $transport ( keys %{ $pref->message_transport_types } ) { push @{ $brief_pref->{transports} }, { transport => $transport }; } push @messaging, $brief_pref; diff --git a/circ/returns.pl b/circ/returns.pl index 2c2bea8aa8..4fb2131038 100755 --- a/circ/returns.pl +++ b/circ/returns.pl @@ -54,6 +54,7 @@ use Koha::Item::Transfers; use Koha::Items; use Koha::Patrons; use Koha::Recalls; +use Koha::Patron::MessagePreferences; my $query = CGI->new; @@ -562,7 +563,11 @@ if ( $messages->{'WrongTransfer'} and not $messages->{'WasTransfered'}) { if ( $messages->{'ResFound'} ) { my $reserve = $messages->{'ResFound'}; my $patron = Koha::Patrons->find( $reserve->{borrowernumber} ); - my $holdmsgpreferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $reserve->{'borrowernumber'}, message_name => 'Hold_Filled' } ); + my $holdmsgpreferences = Koha::Patron::MessagePreferences->find_with_message_name({ + borrowernumber => $reserve->{'borrowernumber'}, + message_name => 'Hold_Filled', + }); + my $mtts = $holdmsgpreferences->message_transport_types if defined $holdmsgpreferences; my $branchCheck = ( $userenv_branch eq $reserve->{branchcode} ); if ( $reserve->{'ResFound'} eq "Waiting" ) { $template->param( @@ -607,7 +612,7 @@ if ( $messages->{'ResFound'} ) { destbranch => $reserve->{'branchcode'}, reservenotes => $reserve->{'reservenotes'}, reserve_id => $reserve->{reserve_id}, - bormessagepref => $holdmsgpreferences->{'transports'}, + bormessagepref => $mtts, ); } diff --git a/misc/cronjobs/advance_notices.pl b/misc/cronjobs/advance_notices.pl index b13e5cdeba..f496d84399 100755 --- a/misc/cronjobs/advance_notices.pl +++ b/misc/cronjobs/advance_notices.pl @@ -49,6 +49,7 @@ use C4::Log qw( cronlogaction ); use Koha::Items; use Koha::Libraries; use Koha::Patrons; +use Koha::Patron::MessagePreferences; =head1 OPTIONS @@ -267,11 +268,13 @@ UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) { my $borrower_preferences; if ( 0 == $upcoming->{'days_until_due'} ) { # This item is due today. Send an 'item due' message. - $borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $upcoming->{'borrowernumber'}, - message_name => 'item_due' } ); + $borrower_preferences = Koha::Patron::MessagePreferences->find_with_message_name({ + borrowernumber => $upcoming->{'borrowernumber'}, + message_name => 'item_due', + }); next unless $borrower_preferences; - if ( $borrower_preferences->{'wants_digest'} ) { + if ( $borrower_preferences->wants_digest ) { # cache this one to process after we've run through all of the items. if ($digest_per_branch) { $due_digest->{ $upcoming->{branchcode} }->{ $upcoming->{borrowernumber} }->{email} = $from_address; @@ -297,7 +300,7 @@ UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) { my $title = C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); ## Get branch info for borrowers home library. - foreach my $transport ( keys %{$borrower_preferences->{'transports'}} ) { + foreach my $transport ( keys %{$borrower_preferences->message_transport_types} ) { next if $transport eq 'itiva'; my $letter = parse_letter( { letter_code => $letter_type, borrowernumber => $upcoming->{'borrowernumber'}, @@ -315,12 +318,14 @@ UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) { } } } else { - $borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( { borrowernumber => $upcoming->{'borrowernumber'}, - message_name => 'advance_notice' } ); - next UPCOMINGITEM unless $borrower_preferences && exists $borrower_preferences->{'days_in_advance'}; - next UPCOMINGITEM unless $borrower_preferences->{'days_in_advance'} == $upcoming->{'days_until_due'}; + $borrower_preferences = Koha::Patron::MessagePreferences->find_with_message_name({ + borrowernumber => $upcoming->{'borrowernumber'}, + message_name => 'advance_notice', + }); + next UPCOMINGITEM unless $borrower_preferences && defined $borrower_preferences->days_in_advance; + next UPCOMINGITEM unless $borrower_preferences->days_in_advance == $upcoming->{'days_until_due'}; - if ( $borrower_preferences->{'wants_digest'} ) { + if ( $borrower_preferences->wants_digest ) { # cache this one to process after we've run through all of the items. if ($digest_per_branch) { $upcoming_digest->{ $upcoming->{branchcode} }->{ $upcoming->{borrowernumber} }->{email} = $from_address; @@ -341,12 +346,12 @@ UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) { my $item = Koha::Items->find( $upcoming->{itemnumber} ); my $letter_type = 'PREDUE'; - $sth->execute($upcoming->{'borrowernumber'},$upcoming->{'itemnumber'},$borrower_preferences->{'days_in_advance'}); + $sth->execute($upcoming->{'borrowernumber'},$upcoming->{'itemnumber'},$borrower_preferences->days_in_advance); my $item_info = $sth->fetchrow_hashref(); my $title = C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); ## Get branch info for borrowers home library. - foreach my $transport ( keys %{$borrower_preferences->{'transports'}} ) { + foreach my $transport ( keys %{$borrower_preferences->message_transport_types} ) { next if $transport eq 'itiva'; my $letter = parse_letter( { letter_code => $letter_type, borrowernumber => $upcoming->{'borrowernumber'}, @@ -408,7 +413,7 @@ if ($digest_per_branch) { get_item_info => sub { my $params = shift; $params->{sth}->execute($params->{borrowernumber}, - $params->{borrower_preferences}->{'days_in_advance'}); + $params->{borrower_preferences}->days_in_advance); return sub { $params->{sth}->fetchrow_hashref; }; @@ -441,7 +446,7 @@ if ($digest_per_branch) { get_item_info => sub { my $params = shift; $params->{sth}->execute($params->{borrowernumber}, - $params->{borrower_preferences}->{'days_in_advance'}); + $params->{borrower_preferences}->days_in_advance); return sub { $params->{sth}->fetchrow_hashref; }; @@ -578,13 +583,10 @@ sub send_digests { $branchcode = $branch_info{'branches.branchcode'}; } - my $borrower_preferences = - C4::Members::Messaging::GetMessagingPreferences( - { - borrowernumber => $borrowernumber, - message_name => $params->{message_name} - } - ); + my $borrower_preferences = Koha::Patron::MessagePreferences->find_with_message_name({ + borrowernumber => $borrowernumber, + message_name => $params->{message_name}, + }); next PATRON unless $borrower_preferences; # how could this happen? @@ -602,7 +604,7 @@ sub send_digests { $titles .= C4::Letters::get_item_content( { item => $item_info, item_content_fields => \@item_content_fields } ); } - foreach my $transport ( keys %{ $borrower_preferences->{'transports'} } ) { + foreach my $transport ( keys %{ $borrower_preferences->message_transport_types } ) { next if $transport eq 'itiva'; my $letter = parse_letter( { diff --git a/misc/cronjobs/automatic_renewals.pl b/misc/cronjobs/automatic_renewals.pl index 0a843843ab..9d55f5e4a8 100755 --- a/misc/cronjobs/automatic_renewals.pl +++ b/misc/cronjobs/automatic_renewals.pl @@ -86,6 +86,7 @@ use C4::Letters; use Koha::Checkouts; use Koha::Libraries; use Koha::Patrons; +use Koha::Patron::MessagePreferences; my $command_line_options = join(" ",@ARGV); @@ -153,7 +154,7 @@ while ( my $auto_renew = $auto_renews->next ) { my ( $borrower_preferences, $wants_messages, $wants_digest ) = ( undef, 0, 0 ); if ( $send_notices_pref eq 'preferences' ){ - $borrower_preferences = C4::Members::Messaging::GetMessagingPreferences( + $borrower_preferences = Koha::Patron::MessagePreferences->find_with_message_name( { borrowernumber => $auto_renew->borrowernumber, message_name => 'auto_renewals' @@ -161,10 +162,10 @@ while ( my $auto_renew = $auto_renews->next ) { ); $wants_messages = 1 if $borrower_preferences - && $borrower_preferences->{transports}; + && $borrower_preferences->message_transport_types; $wants_digest = 1 if $wants_messages - && $borrower_preferences->{wants_digest}; + && $borrower_preferences->wants_digest; } else { # Preference is never or cron $wants_messages = $send_notices; $wants_digest = 0; @@ -230,7 +231,7 @@ if ( $send_notices && $confirm ) { for my $borrowernumber ( keys %report ) { my $patron = Koha::Patrons->find($borrowernumber); my $borrower_preferences = - C4::Members::Messaging::GetMessagingPreferences( + Koha::Patron::MessagePreferences->find_with_message_name( { borrowernumber => $borrowernumber, message_name => 'auto_renewals' @@ -239,7 +240,7 @@ if ( $send_notices && $confirm ) { for my $issue ( @{ $report{$borrowernumber} } ) { my $item = $issue->item; # Force sending of email and only email if pref is set to "cron" - my @transports = $send_notices_pref eq 'preferences' ? keys %{ $borrower_preferences->{'transports'} } : 'email'; + my @transports = $send_notices_pref eq 'preferences' ? keys %{ $borrower_preferences->message_transport_types } : 'email'; foreach my $transport ( @transports ) { my $letter = C4::Letters::GetPreparedLetter ( module => 'circulation', @@ -322,7 +323,7 @@ sub send_digests { PATRON: while ( my ( $borrowernumber, $digest ) = each %{$params->{digests}} ) { next unless defined $digest->{updated} && $digest->{updated} == 1; my $borrower_preferences = - C4::Members::Messaging::GetMessagingPreferences( + Koha::Patron::MessagePreferences->find_with_message_name( { borrowernumber => $borrowernumber, message_name => 'auto_renewals' @@ -341,7 +342,7 @@ sub send_digests { my $library = Koha::Libraries->find( $branchcode ); my $from_address = $library->from_email_address; - foreach my $transport ( keys %{ $borrower_preferences->{'transports'} } ) { + foreach my $transport ( keys %{ $borrower_preferences->message_transport_types } ) { my $letter = C4::Letters::GetPreparedLetter ( module => 'circulation', letter_code => $params->{letter_code}, diff --git a/t/db_dependent/Koha/Patron/Categories.t b/t/db_dependent/Koha/Patron/Categories.t index 14b71004e8..d009ee3108 100755 --- a/t/db_dependent/Koha/Patron/Categories.t +++ b/t/db_dependent/Koha/Patron/Categories.t @@ -22,12 +22,12 @@ use Modern::Perl; use Test::More tests => 11; use C4::Context; -use C4::Members::Messaging; use Koha::Database; use Koha::DateUtils qw( dt_from_string ); use Koha::Patron; use Koha::Patron::Category; use Koha::Patron::Categories; +use Koha::Patron::MessagePreferences; use t::lib::Dates; use t::lib::TestBuilder; use t::lib::Mocks; @@ -124,13 +124,13 @@ subtest 'default_messaging tests' => sub { is_digest => 1, } }); - C4::Members::Messaging::SetMessagingPreference({ + Koha::Patron::MessagePreference->new({ categorycode => $category->categorycode, message_attribute_id => $attr->{'message_attribute_id'}, message_transport_types => [ qw( email ) ], days_in_advance => 5, wants_digest => 1 - }); + })->store; my $default_messaging = $category->default_messaging; is(@$default_messaging, 1, "One default messaging found."); $default_messaging = $default_messaging->[0]; diff --git a/t/db_dependent/api/v1/patrons.t b/t/db_dependent/api/v1/patrons.t index 172a04993a..117e94d5cc 100755 --- a/t/db_dependent/api/v1/patrons.t +++ b/t/db_dependent/api/v1/patrons.t @@ -567,7 +567,7 @@ subtest 'add() tests' => sub { } )->status_is(201, 'Patron added')->tx->res->json->{patron_id}; - my $messaging_preferences = C4::Members::Messaging::GetMessagingPreferences({ borrowernumber => $patron_id, message_name => 'Item_Due' }); + my $messaging_preferences = Koha::Patron::MessagePreferences->find_with_message_name({ borrowernumber => $patron_id, message_name => 'Item_Due' }); is_deeply( $messaging_preferences, -- 2.25.1