mirror of
https://framagit.org/framasoft/framadate/framadate
synced 2026-07-17 16:49:35 +00:00
Refactoring NotificationService
This commit is contained in:
parent
fe8f779217
commit
2b38a7ddd6
3 changed files with 95 additions and 90 deletions
|
|
@ -23,15 +23,11 @@ use Framadate\Services\InputService;
|
|||
use Framadate\Services\LogService;
|
||||
use Framadate\Services\MailService;
|
||||
use Framadate\Services\PollService;
|
||||
use Framadate\Services\NotificationService;
|
||||
use Framadate\Utils;
|
||||
|
||||
include_once __DIR__ . '/app/inc/init.php';
|
||||
|
||||
/* Constants */
|
||||
/* --------- */
|
||||
const UPDATE_POLL = 1;
|
||||
const DELETED_POLL = 2;
|
||||
|
||||
/* Variables */
|
||||
/* --------- */
|
||||
|
||||
|
|
@ -49,40 +45,7 @@ $pollService = new PollService($connect, $logService);
|
|||
$adminPollService = new AdminPollService($connect, $pollService, $logService);
|
||||
$inputService = new InputService();
|
||||
$mailService = new MailService($config['use_smtp']);
|
||||
|
||||
/* Functions */
|
||||
/*-----------*/
|
||||
|
||||
/**
|
||||
* Send a notification to the poll admin to notify him about an update.
|
||||
*
|
||||
* @param stdClass $poll The poll
|
||||
* @param MailService $mailService The mail service
|
||||
* @param int $type cf: Constants on the top of this page
|
||||
*/
|
||||
function sendUpdateNotification($poll, $mailService, $type) {
|
||||
if (!isset($_SESSION['mail_sent'])) {
|
||||
$_SESSION['mail_sent'] = [];
|
||||
}
|
||||
|
||||
if ($poll->receiveNewVotes) {
|
||||
|
||||
$subject = '[' . NOMAPPLICATION . '] ' . __f('Mail', 'Notification of poll: %s', $poll->title);
|
||||
|
||||
$message = '';
|
||||
switch ($type) {
|
||||
case UPDATE_POLL:
|
||||
$message = __f('Mail', 'Someone just change your poll available at the following link %s.', Utils::getUrlSondage($poll->admin_id, true)) . "\n\n";
|
||||
break;
|
||||
case DELETED_POLL:
|
||||
$message = __f('Mail', 'Someone just delete your poll %s.', Utils::htmlEscape($poll->title)) . "\n\n";
|
||||
break;
|
||||
}
|
||||
|
||||
$messageTypeKey = $type . '-' . $poll->id;
|
||||
$mailService->send($poll->admin_mail, $subject, $message, $messageTypeKey);
|
||||
}
|
||||
}
|
||||
$notificationService = new NotificationService($mailService);
|
||||
|
||||
/* PAGE */
|
||||
/* ---- */
|
||||
|
|
@ -176,7 +139,7 @@ if (isset($_POST['update_poll_info'])) {
|
|||
// Update poll in database
|
||||
if ($updated && $adminPollService->updatePoll($poll)) {
|
||||
$message = new Message('success', __('adminstuds', 'Poll saved'));
|
||||
sendUpdateNotification($poll, $mailService, UPDATE_POLL);
|
||||
$notificationService->sendUpdateNotification($poll, $notificationService::UPDATE_POLL);
|
||||
} else {
|
||||
$message = new Message('danger', __('Error', 'Failed to save poll'));
|
||||
$poll = $pollService->findById($poll_id);
|
||||
|
|
@ -341,7 +304,7 @@ if (isset($_POST['delete_poll'])) {
|
|||
if (isset($_POST['confirm_delete_poll'])) {
|
||||
if ($adminPollService->deleteEntirePoll($poll_id)) {
|
||||
$message = new Message('success', __('adminstuds', 'Poll fully deleted'));
|
||||
sendUpdateNotification($poll, $mailService, DELETED_POLL);
|
||||
$notificationService->sendUpdateNotification($poll, $notificationService::DELETED_POLL);
|
||||
} else {
|
||||
$message = new Message('danger', __('Error', 'Failed to delete the poll'));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue