View | Details | Raw Unified | Return to bug 12802
Collapse All | Expand All

(-)a/C4/Letters.pm (-4 / +12 lines)
Lines 962-975 sub _parseletter { Link Here
962
962
963
=head2 EnqueueLetter
963
=head2 EnqueueLetter
964
964
965
  my $success = EnqueueLetter( { letter => $letter, 
965
    my $queued_count = EnqueueLetter({
966
        borrowernumber => '12', message_transport_type => 'email' } )
966
        letter => $letter,
967
        borrowernumber => '12',
968
        message_transport_type => 'email'
969
    });
967
970
968
places a letter in the message_queue database table, which will
971
places a letter in the message_queue database table, which will
969
eventually get processed (sent) by the process_message_queue.pl
972
eventually get processed (sent) by the process_message_queue.pl
970
cronjob when it calls SendQueuedMessages.
973
cronjob when it calls SendQueuedMessages.
971
974
972
return message_id on success
975
return the number of queued messages
973
976
974
=cut
977
=cut
975
978
Lines 1015-1020 sub EnqueueLetter { Link Here
1015
        $from_address ||= C4::Context->preference('KohaAdminEmailAddress');
1018
        $from_address ||= C4::Context->preference('KohaAdminEmailAddress');
1016
    }
1019
    }
1017
1020
1021
    my $queued = 0;
1022
1018
    my $rs = Koha::Database->new->schema->resultset('MessageQueue');
1023
    my $rs = Koha::Database->new->schema->resultset('MessageQueue');
1019
    if ($params->{message_transport_type} eq 'email') {
1024
    if ($params->{message_transport_type} eq 'email') {
1020
      for my $to_address ( @to_addresses ) {
1025
      for my $to_address ( @to_addresses ) {
Lines 1030-1035 sub EnqueueLetter { Link Here
1030
              from_address => $from_address,
1035
              from_address => $from_address,
1031
              content_type => $params->{letter}{'content-type'},
1036
              content_type => $params->{letter}{'content-type'},
1032
          });
1037
          });
1038
          ++$queued;
1033
      }
1039
      }
1034
    } else {
1040
    } else {
1035
          $rs->create({
1041
          $rs->create({
Lines 1043-1050 sub EnqueueLetter { Link Here
1043
              from_address => $from_address,
1049
              from_address => $from_address,
1044
              content_type => $params->{letter}{'content-type'},
1050
              content_type => $params->{letter}{'content-type'},
1045
          });
1051
          });
1052
          ++$queued;
1046
    }
1053
    }
1047
    return scalar( @to_addresses );
1054
1055
    return $queued;
1048
}
1056
}
1049
1057
1050
=head2 SendQueuedMessages ([$hashref]) 
1058
=head2 SendQueuedMessages ([$hashref]) 
(-)a/t/db_dependent/Letters.t (-2 / +15 lines)
Lines 18-24 Link Here
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
19
19
20
use Modern::Perl;
20
use Modern::Perl;
21
use Test::More tests => 82;
21
use Test::More tests => 94;
22
use Test::MockModule;
22
use Test::MockModule;
23
use Test::Warn;
23
use Test::Warn;
24
24
Lines 702-711 subtest 'SendQueuedMessages' => sub { Link Here
702
702
703
    my $sms_pro = $builder->build_object({ class => 'Koha::SMS::Providers', value => { domain => 'kidclamp.rocks' } });
703
    my $sms_pro = $builder->build_object({ class => 'Koha::SMS::Providers', value => { domain => 'kidclamp.rocks' } });
704
    ModMember( borrowernumber => $borrowernumber, smsalertnumber => '5555555555', sms_provider_id => $sms_pro->id() );
704
    ModMember( borrowernumber => $borrowernumber, smsalertnumber => '5555555555', sms_provider_id => $sms_pro->id() );
705
    C4::Letters::EnqueueLetter($my_message); #using datas set around line 95 and forward
705
    my $message = {
706
        borrowernumber         => $borrowernumber,
707
        message_transport_type => 'sms',
708
        letter                 => {
709
            content      => 'a message',
710
            title        => 'message title',
711
            metadata     => 'metadata',
712
            code         => 'TEST_MESSAGE',
713
            content_type => 'text/plain',
714
        },
715
    };
716
    C4::Letters::EnqueueLetter($message);
706
    C4::Letters::SendQueuedMessages();
717
    C4::Letters::SendQueuedMessages();
718
707
    my $sms_message_address = $schema->resultset('MessageQueue')->search({
719
    my $sms_message_address = $schema->resultset('MessageQueue')->search({
708
        borrowernumber => $borrowernumber,
720
        borrowernumber => $borrowernumber,
721
        message_transport_type => 'sms',
709
        status => 'sent'
722
        status => 'sent'
710
    })->next()->to_address();
723
    })->next()->to_address();
711
    is( $sms_message_address, '5555555555@kidclamp.rocks', 'SendQueuedMessages populates the to address correctly for SMS by email' );
724
    is( $sms_message_address, '5555555555@kidclamp.rocks', 'SendQueuedMessages populates the to address correctly for SMS by email' );
(-)a/t/db_dependent/Members.t (-3 / +2 lines)
Lines 17-23 Link Here
17
17
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use Test::More tests => 63;
20
use Test::More tests => 65;
21
use Test::MockModule;
21
use Test::MockModule;
22
use Data::Dumper qw/Dumper/;
22
use Data::Dumper qw/Dumper/;
23
use C4::Context;
23
use C4::Context;
Lines 153-159 C4::Context->clear_syspref_cache(); Link Here
153
$notice_emails = GetNoticeEmailAddresses($member->{'borrowernumber'});
153
$notice_emails = GetNoticeEmailAddresses($member->{'borrowernumber'});
154
is_deeply ($notice_emails, [ $EMAILPRO ], "GetNoticeEmailAddresses returns correct value when AutoEmailPrimaryAddress is emailpro");
154
is_deeply ($notice_emails, [ $EMAILPRO ], "GetNoticeEmailAddresses returns correct value when AutoEmailPrimaryAddress is emailpro");
155
155
156
C4::Context->set_preference( 'AutoEmailPrimaryAddress', 'emailpro,email' );
156
t::lib::Mocks::mock_preference( 'AutoEmailPrimaryAddress', 'emailpro,email' );
157
C4::Context->clear_syspref_cache();
157
C4::Context->clear_syspref_cache();
158
$notice_emails = GetNoticeEmailAddresses($member->{'borrowernumber'});
158
$notice_emails = GetNoticeEmailAddresses($member->{'borrowernumber'});
159
is_deeply ($notice_emails, [ $EMAILPRO, $EMAIL ], "GetNoticeEmailAddresses returns correct value when AutoEmailPrimaryAddress is emailpro|email");
159
is_deeply ($notice_emails, [ $EMAILPRO, $EMAIL ], "GetNoticeEmailAddresses returns correct value when AutoEmailPrimaryAddress is emailpro|email");
160
- 

Return to bug 12802