mirror of
https://github.com/ShaYmez/FreeSTAR-Status-Engine.git
synced 2026-06-01 21:54:48 -04:00
Fix bug notifications not being sent.
The code to handle sending of notification was missing. This change makes two different options available on how notifications will be handled which will be controlled by CRON_SERVER_IP config option. - If CRON_SERVER_IP is set, the server with the given IP should call URL ../admin/?task=cron every x minutes. If the config is left empty, the notification will be called once the incident has been saved. (The latter meothod might cause server timeout if there are large numbers of subscribers!) Other minor changes: - Removed old commented code - Removed call to syslog used for debugging
This commit is contained in:
@@ -72,7 +72,7 @@ class Notification
|
||||
$queue->template_data1 = $arr_data['subject'];
|
||||
$queue->template_data2 = $arr_data['body'];
|
||||
$task_id_email = $queue->add_task();
|
||||
syslog(1, "queue email: ". $task_id_email);
|
||||
//syslog(1, "queue email: ". $task_id_email);
|
||||
$arr_email = array();
|
||||
}
|
||||
if ( SUBSCRIBE_TELEGRAM ) {
|
||||
@@ -81,7 +81,7 @@ class Notification
|
||||
$queue->template_data1 = null;
|
||||
$queue->template_data2 = $arr_data['body'];
|
||||
$task_id_telegram = $queue->add_task();
|
||||
syslog(1, "queue telegram: ". $task_id_telegram);
|
||||
//syslog(1, "queue telegram: ". $task_id_telegram);
|
||||
$arr_telegram = array();
|
||||
}
|
||||
|
||||
@@ -116,32 +116,6 @@ class Notification
|
||||
$queue->task_id = $task_id_email;
|
||||
$queue->add_notification($arr_email); // Add array of Email users to the notification queue list
|
||||
}
|
||||
|
||||
/* OLD CODE to get user email/telegram data) - Move to queue handler...
|
||||
while ($subscriber = $query->fetch_assoc()) {
|
||||
// Fetch list of subscriber details for already found subscriber IDs
|
||||
$stmt = $mysqli->prepare("SELECT typeID, userID, firstname, token FROM subscribers WHERE subscriberID = ? AND active=1");
|
||||
$stmt->bind_param("i", $subscriber['subscriberIDFK']);
|
||||
$stmt->execute();
|
||||
$subscriberQuery = $stmt->get_result();
|
||||
|
||||
while ($subscriberData = $subscriberQuery->fetch_assoc()) {
|
||||
$typeID = $subscriberData['typeID']; // Telegram = 1, email = 2
|
||||
$userID = $subscriberData['userID'];
|
||||
$firstname = $subscriberData['firstname'];
|
||||
$token = $subscriberData['token'];
|
||||
|
||||
// Handle telegram
|
||||
if ($typeID == 1) {
|
||||
$this->submit_telegram($userID, $firstname);
|
||||
}
|
||||
|
||||
// Handle email
|
||||
if ($typeID == 2) {
|
||||
$this->submit_email($userID, $token);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -163,11 +137,9 @@ class Notification
|
||||
$response = json_decode($json, true);
|
||||
|
||||
if (!is_array($response) || ! array_key_exists("ok", $response) || $response['ok'] != 1 ) {
|
||||
syslog(1, "telegram failed: ".$userID);
|
||||
return false;
|
||||
|
||||
}
|
||||
syslog(1,"telegram ok: " .$userID);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -181,52 +153,13 @@ class Notification
|
||||
public function submit_queue_email($subscriber, $subject, $msg)
|
||||
{
|
||||
// TODO Error handling
|
||||
//$Parsedown = new Parsedown();
|
||||
$mailer = new Mailer();
|
||||
if ( ! $mailer->send_mail($subscriber, $subject, $msg, true) ) {
|
||||
syslog(1, "email failed: " .$subscriber);
|
||||
return false;
|
||||
}
|
||||
syslog(1, "email ok: " .$subscriber);
|
||||
return true;
|
||||
}
|
||||
|
||||
// /**
|
||||
// * Sends email notifications to a subscriber.
|
||||
// * Function depends on Parsedown and Mailer class being loaded.
|
||||
// * @param String $userID The email address to send to
|
||||
// * @param String $uthkey Users token for managing subscription
|
||||
// * @return void
|
||||
// */
|
||||
// public function submit_email_old($userID, $token)
|
||||
// {
|
||||
// // TODO Error handling
|
||||
// //$Parsedown = new Parsedown();
|
||||
// $mailer = new Mailer();
|
||||
//
|
||||
// $str_mail = file_get_contents("../libs/templates/email_status_update.html");
|
||||
// $str_mail = str_replace("%name%", NAME, $str_mail);
|
||||
// // $smtp_mail = str_replace("%email%", $userID, $smtp_mail);
|
||||
// $str_mail = str_replace("%url%", WEB_URL, $str_mail);
|
||||
// $str_mail = str_replace("%service%", $this->servicenames, $str_mail);
|
||||
// $str_mail = str_replace("%status%", $this->status, $str_mail);
|
||||
// $str_mail = str_replace("%time%", date("c", $this->time), $str_mail);
|
||||
// $str_mail = str_replace("%comment%", $Parsedown->setBreaksEnabled(true)->text($this->text), $str_mail);
|
||||
// $str_mail = str_replace("%token%", $token, $str_mail);
|
||||
//
|
||||
// $str_mail = str_replace("%service_status_update_from%", _("Service status update from"), $str_mail);
|
||||
// $str_mail = str_replace("%services_impacted%", _("Service(s) Impacted"), $str_mail);
|
||||
// $str_mail = str_replace("%status_label%", _("Status"), $str_mail);
|
||||
// $str_mail = str_replace("%time_label%", _("Time"), $str_mail);
|
||||
// $str_mail = str_replace("%manage_subscription%", _("Manage subscription"), $str_mail);
|
||||
// $str_mail = str_replace("%unsubscribe%", _("Unsubscribe"), $str_mail);
|
||||
// $str_mail = str_replace("%powered_by%", _("Powered by"), $str_mail);
|
||||
//
|
||||
// $subject = _('Status update from') . ' - ' . NAME . ' [ ' . $this->status . ' ]';
|
||||
// $mailer->send_mail($userID, $subject, $str_mail);
|
||||
// }
|
||||
//
|
||||
|
||||
public function prepare_email(){
|
||||
|
||||
$Parsedown = new Parsedown();
|
||||
|
||||
Reference in New Issue
Block a user