|
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 |
} |