Lines 35-40
use Date::Calc qw( Add_Delta_Days );
Link Here
|
35 |
use Encode; |
35 |
use Encode; |
36 |
use Carp; |
36 |
use Carp; |
37 |
use Koha::Email; |
37 |
use Koha::Email; |
|
|
38 |
use Scalar::Util qw( blessed ); |
39 |
use Try::Tiny; |
38 |
|
40 |
|
39 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); |
41 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); |
40 |
|
42 |
|
Lines 948-953
sub SendQueuedMessages {
Link Here
|
948 |
|
950 |
|
949 |
my $unsent_messages = _get_unsent_messages(); |
951 |
my $unsent_messages = _get_unsent_messages(); |
950 |
MESSAGE: foreach my $message ( @$unsent_messages ) { |
952 |
MESSAGE: foreach my $message ( @$unsent_messages ) { |
|
|
953 |
|
951 |
# warn Data::Dumper->Dump( [ $message ], [ 'message' ] ); |
954 |
# warn Data::Dumper->Dump( [ $message ], [ 'message' ] ); |
952 |
warn sprintf( 'sending %s message to patron: %s', |
955 |
warn sprintf( 'sending %s message to patron: %s', |
953 |
$message->{'message_transport_type'}, |
956 |
$message->{'message_transport_type'}, |
Lines 955-965
sub SendQueuedMessages {
Link Here
|
955 |
if $params->{'verbose'} or $debug; |
958 |
if $params->{'verbose'} or $debug; |
956 |
# This is just begging for subclassing |
959 |
# This is just begging for subclassing |
957 |
next MESSAGE if ( lc($message->{'message_transport_type'}) eq 'rss' ); |
960 |
next MESSAGE if ( lc($message->{'message_transport_type'}) eq 'rss' ); |
958 |
if ( lc( $message->{'message_transport_type'} ) eq 'email' ) { |
961 |
eval { |
959 |
_send_message_by_email( $message, $params->{'username'}, $params->{'password'}, $params->{'method'} ); |
962 |
if ( lc( $message->{'message_transport_type'} ) eq 'email' ) { |
960 |
} |
963 |
_send_message_by_email( $message, $params->{'username'}, $params->{'password'}, $params->{'method'} ); |
961 |
elsif ( lc( $message->{'message_transport_type'} ) eq 'sms' ) { |
964 |
} |
962 |
_send_message_by_sms( $message ); |
965 |
elsif ( lc( $message->{'message_transport_type'} ) eq 'sms' ) { |
|
|
966 |
_send_message_by_sms( $message ); |
967 |
} |
968 |
}; |
969 |
if ($@) { |
970 |
warn $@; |
963 |
} |
971 |
} |
964 |
} |
972 |
} |
965 |
return scalar( @$unsent_messages ); |
973 |
return scalar( @$unsent_messages ); |
Lines 1314-1325
sub _send_message_by_sms {
Link Here
|
1314 |
return; |
1322 |
return; |
1315 |
} |
1323 |
} |
1316 |
|
1324 |
|
1317 |
my $success = C4::SMS->send_sms( { destination => $member->{'smsalertnumber'}, |
1325 |
my $success; |
1318 |
message => $message->{'content'}, |
1326 |
try { |
1319 |
} ); |
1327 |
$success = C4::SMS->send_sms( { destination => $member->{'smsalertnumber'}, |
1320 |
_set_message_status( { message_id => $message->{'message_id'}, |
1328 |
message => $message->{'content'}, |
1321 |
status => ($success ? 'sent' : 'failed'), |
1329 |
} ); |
1322 |
delivery_note => ($success ? '' : 'No notes from SMS driver') } ); |
1330 |
_set_message_status( { message_id => $message->{'message_id'}, |
|
|
1331 |
status => ($success ? 'sent' : 'failed'), |
1332 |
delivery_note => ($success ? '' : 'No notes from SMS driver') } ); |
1333 |
|
1334 |
} catch { |
1335 |
if (blessed($_)){ |
1336 |
if ($_->isa('Koha::Exception::ConnectionFailed')){ |
1337 |
# Keep the message in pending status but |
1338 |
# add a delivery note explaining what happened |
1339 |
_set_message_status ( { message_id => $message->{'message_id'}, |
1340 |
status => 'pending', |
1341 |
delivery_note => 'Connection failed. Attempting to resend.' } ); |
1342 |
} |
1343 |
else { |
1344 |
# failsafe: if we catch and unknown exception, set message status to failed |
1345 |
_set_message_status( { message_id => $message->{'message_id'}, |
1346 |
status => 'failed', |
1347 |
delivery_note => 'Unknown exception.' } ); |
1348 |
$_->rethrow(); |
1349 |
} |
1350 |
} |
1351 |
else { |
1352 |
# failsafe |
1353 |
_set_message_status( { message_id => $message->{'message_id'}, |
1354 |
status => 'failed', |
1355 |
delivery_note => 'Unknown non-blessed exception.' } ); |
1356 |
die $_; |
1357 |
} |
1358 |
}; |
1323 |
|
1359 |
|
1324 |
return $success; |
1360 |
return $success; |
1325 |
} |
1361 |
} |