Fix style and add config file to php-cs-fixer

This commit is contained in:
osaajani 2019-10-30 00:30:39 +01:00
parent 485a0cb6fd
commit fab9e256ab
40 changed files with 2360 additions and 1128 deletions

View file

@ -1,8 +1,19 @@
<?php
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace controllers\internals;
/**
* Classe des commandes
* Classe des commandes.
*/
class Command extends \descartes\InternalController
{
@ -15,11 +26,12 @@ namespace controllers\internals;
$this->internal_event = new \controllers\internals\Event($bdd);
}
/**
* Return the list of commands as an array
* Return the list of commands as an array.
*
* @param mixed(int|bool) $nb_entry : Le nombre d'entrées à retourner par page
* @param mixed(int|bool) $page : Le numéro de page en cours
* @param mixed(int|bool) $page : Le numéro de page en cours
*
* @return array : La liste des commandes
*/
public function list($nb_entry = false, $page = false)
@ -28,8 +40,10 @@ namespace controllers\internals;
}
/**
* Cette fonction retourne une liste des commandes sous forme d'un tableau
* Cette fonction retourne une liste des commandes sous forme d'un tableau.
*
* @param array int $ids : Les ids des entrées à retourner
*
* @return array : La liste des commandes
*/
public function get_by_ids($ids)
@ -39,7 +53,8 @@ namespace controllers\internals;
}
/**
* Cette fonction permet de compter le nombre de scheduleds
* Cette fonction permet de compter le nombre de scheduleds.
*
* @return int : Le nombre d'entrées dans la table
*/
public function count()
@ -48,8 +63,10 @@ namespace controllers\internals;
}
/**
* Cette fonction va supprimer une commande
* Cette fonction va supprimer une commande.
*
* @param array $id : L'id de la commande à supprimer
*
* @return int : Le nombre de commandes supprimées;
*/
public function delete($id)
@ -58,8 +75,13 @@ namespace controllers\internals;
}
/**
* Cette fonction insert une nouvelle commande
* Cette fonction insert une nouvelle commande.
*
* @param array $command : La commande à insérer
* @param mixed $name
* @param mixed $script
* @param mixed $admin
*
* @return mixed bool|int : false si echec, sinon l'id de la nouvelle commande insérée
*/
public function create($name, $script, $admin)
@ -72,16 +94,24 @@ namespace controllers\internals;
$result = $this->model_command->insert($command);
if (!$result) {
if (!$result)
{
return false;
}
$this->internal_event->create('COMMAND_ADD', 'Ajout commande : ' . $name . ' => ' . $script);
$this->internal_event->create('COMMAND_ADD', 'Ajout commande : '.$name.' => '.$script);
return $result;
}
/**
* Cette fonction met à jour un commande
* Cette fonction met à jour un commande.
*
* @param mixed $id
* @param mixed $name
* @param mixed $script
* @param mixed $admin
*
* @return int : le nombre de ligne modifiées
*/
public function update($id, $name, $script, $admin)
@ -92,8 +122,6 @@ namespace controllers\internals;
'admin' => $admin,
];
$result = $this->model_command->update($id, $command);
return $result;
return $this->model_command->update($id, $command);
}
}

View file

@ -1,17 +1,29 @@
<?php
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace controllers\internals;
class Console extends \descartes\InternalController
{
/**
* Cette fonction envoie tous les Sms programmés qui doivent l'être
* Cette fonction envoie tous les Sms programmés qui doivent l'être.
*/
public function sendScheduled()
{
//On créé l'objet de base de données
global $db;
for ($i = 0; $i < 30; $i++) {
for ($i = 0; $i < 30; ++$i)
{
$now = new \DateTime();
$now = $now->format('Y-m-d H:i:s');
@ -19,87 +31,100 @@ class Console extends \descartes\InternalController
$scheduleds = $db->getScheduledNotInProgressBefore($now);
$ids_scheduleds = array();
$ids_scheduleds = [];
//On passe en cours de progression tous les Sms
foreach ($scheduleds as $scheduled) {
foreach ($scheduleds as $scheduled)
{
$ids_scheduleds[] = $scheduled['id'];
}
echo count($ids_scheduleds) . " Sms à envoyer ont été trouvés et ajoutés à la liste des Sms en cours d'envoi.\n";
echo \count($ids_scheduleds)." Sms à envoyer ont été trouvés et ajoutés à la liste des Sms en cours d'envoi.\n";
$db->updateProgressScheduledIn($ids_scheduleds, true);
//Pour chaque Sms à envoyer
foreach ($scheduleds as $scheduled) {
foreach ($scheduleds as $scheduled)
{
$id_scheduled = $scheduled['id'];
$text_sms = escapeshellarg($scheduled['content']);
$flash = $scheduled['flash'];
//On initialise les numéros auxquelles envoyer le Sms
$numbers = array();
$numbers = [];
//On récupère les numéros pour le Sms et on les ajoute
$target_numbers = $db->getNumbersForScheduled($id_scheduled);
foreach ($target_numbers as $target_number) {
foreach ($target_numbers as $target_number)
{
$numbers[] = $target_number['number'];
}
//On récupère les contacts, et on ajoute les numéros
$contacts = $db->getContactForScheduled($id_scheduled);
foreach ($contacts as $contact) {
foreach ($contacts as $contact)
{
$numbers[] = $contact['number'];
}
//On récupère les groups
$groups = $db->getGroupForScheduled($id_scheduled);
foreach ($groups as $group) {
foreach ($groups as $group)
{
//On récupère les contacts du group et on les ajoute aux numéros
$contacts = $db->getContactForGroup($group['id']);
foreach ($contacts as $contact) {
foreach ($contacts as $contact)
{
$numbers[] = $contact['number'];
}
}
$smsStops = $db->getFromTableWhere('smsstop');
foreach ($numbers as $number) {
foreach ($numbers as $number)
{
//Si les Sms STOP sont activés, on passe au numéro suivant si le numéro actuelle fait parti des Sms STOP
if (RASPISms_SETTINGS_SmsSTOPS) {
foreach ($smsStops as $smsStop) {
if (!($number == $smsStop['number'])) {
if (RASPISms_SETTINGS_SmsSTOPS)
{
foreach ($smsStops as $smsStop)
{
if (!($number === $smsStop['number']))
{
continue;
}
echo "Un Sms destiné au " . $number . " a été bloqué par Sms STOP\n";
continue(2); //On passe au numéro suivant !
echo 'Un Sms destiné au '.$number." a été bloqué par Sms STOP\n";
continue 2; //On passe au numéro suivant !
}
}
echo " Envoi d'un Sms au " . $number . "\n";
echo " Envoi d'un Sms au ".$number."\n";
//On ajoute le Sms aux Sms envoyés
//Pour plus de précision, on remet la date à jour en réinstanciant l'objet \DateTime (et on reformatte la date, bien entendu)
$now = new \DateTime();
$now = $now->format('Y-m-d H:i:s');
//On peut maintenant ajouter le Sms
if (!$db->insertIntoTable('sendeds', ['at' => $now, 'target' => $number, 'content' => $scheduled['content'], 'before_delivered' => ceil(mb_strlen($scheduled['content'])/160)])) {
echo 'Impossible d\'inserer le sms pour le numero ' . $number . "\n";
if (!$db->insertIntoTable('sendeds', ['at' => $now, 'target' => $number, 'content' => $scheduled['content'], 'before_delivered' => ceil(mb_strlen($scheduled['content']) / 160)]))
{
echo 'Impossible d\'inserer le sms pour le numero '.$number."\n";
}
$id_sended = $db->lastId();
//Commande qui envoie le Sms
$commande_send_sms = 'gammu-smsd-inject TEXT ' . escapeshellarg($number) . ' -report -len ' . mb_strlen($text_sms) . ' -text ' . $text_sms;
if (RASPISms_SETTINGS_Sms_FLASH && $flash) {
//Commande qui envoie le Sms
$commande_send_sms = 'gammu-smsd-inject TEXT '.escapeshellarg($number).' -report -len '.mb_strlen($text_sms).' -text '.$text_sms;
if (RASPISms_SETTINGS_Sms_FLASH && $flash)
{
$commande_send_sms .= ' -flash';
}
//Commande qui s'assure de passer le Sms dans ceux envoyés, et de lui donner le bon statut
//On va liée les deux commandes pour envoyer le Sms puis le passer en echec
$commande = '(' . $commande_send_sms . ') >/dev/null 2>/dev/null &';
$commande = '('.$commande_send_sms.') >/dev/null 2>/dev/null &';
exec($commande); //On execute la commande d'envoie d'un Sms
}
}
@ -120,40 +145,46 @@ class Console extends \descartes\InternalController
{
//On créer l'objet de base de données
global $db;
for ($i = 0; $i < 30; $i++) {
foreach (scandir(PWD_RECEIVEDS) as $dir) {
for ($i = 0; $i < 30; ++$i)
{
foreach (scandir(PWD_RECEIVEDS) as $dir)
{
//Si le fichier est un fichier système, on passe à l'itération suivante
if ($dir == '.' || $dir == '..' || $dir == '.tokeep') {
if ('.' === $dir || '..' === $dir || '.tokeep' === $dir)
{
continue;
}
echo "Analyse du Sms " . $dir . "\n";
echo 'Analyse du Sms '.$dir."\n";
//On récupère la date du Sms à la seconde près grâce au nom du fichier (Cf. parseSms.sh)
//Il faut mettre la date au format Y-m-d H:i:s
$date = substr($dir, 0, 4) . '-' . substr($dir, 4, 2) . '-' . substr($dir, 6, 2) . ' ' . substr($dir, 8, 2) . ':' . substr($dir, 10, 2) . ':' . substr($dir, 12, 2);
$date = mb_substr($dir, 0, 4).'-'.mb_substr($dir, 4, 2).'-'.mb_substr($dir, 6, 2).' '.mb_substr($dir, 8, 2).':'.mb_substr($dir, 10, 2).':'.mb_substr($dir, 12, 2);
//On récupère le fichier, et on récupère la chaine jusqu'au premier ':' pour le numéro de téléphone source, et la fin pour le message
$content_file = file_get_contents(PWD_RECEIVEDS . $dir);
$content_file = file_get_contents(PWD_RECEIVEDS.$dir);
//Si on peux pas ouvrir le fichier, on quitte en logant une erreur
if ($content_file == false) {
error_log('Unable to read file "' . $dir);
if (false === $content_file)
{
error_log('Unable to read file "'.$dir);
die(4);
}
//On supprime le fichier. Si on n'y arrive pas, alors on log
if (!unlink(PWD_RECEIVEDS . $dir)) {
error_log('Unable to delete file "' . $dir);
if (!unlink(PWD_RECEIVEDS.$dir))
{
error_log('Unable to delete file "'.$dir);
die(8);
}
$content_file = explode(':', $content_file, 2);
//Si on a pas passé de numéro ou de message, alors on lève une erreur
if (!isset($content_file[0], $content_file[1])) {
error_log('Missing params in file "' . $dir);
if (!isset($content_file[0], $content_file[1]))
{
error_log('Missing params in file "'.$dir);
die(5);
}
@ -162,81 +193,96 @@ class Console extends \descartes\InternalController
$text = $content_file[1];
//On gère les Sms STOP
if (trim($text) == 'STOP') {
echo 'STOP Sms detected ' . $number . "\n";
error_log('STOP Sms detected ' . $number);
if ('STOP' === trim($text))
{
echo 'STOP Sms detected '.$number."\n";
error_log('STOP Sms detected '.$number);
$db->insertIntoTable('smsstop', ['number' => $number]);
continue;
}
//On gère les accusés de reception
if (trim($text) == 'Delivered' || trim($text) == 'Failed') {
echo 'Delivered or Failed Sms for ' . $number . "\n";
error_log('Delivered or Failed Sms for ' . $number);
if ('Delivered' === trim($text) || 'Failed' === trim($text))
{
echo 'Delivered or Failed Sms for '.$number."\n";
error_log('Delivered or Failed Sms for '.$number);
//On récupère les Sms pas encore validé, uniquement sur les dernières 12h
$now = new \DateTime();
$interval = new \DateInterval('PT12H');
$sinceDate = $now->sub($interval)->format('Y-m-d H:i:s');
if (!$sendeds = $db->getFromTableWhere('sendeds', ['target' => $number, 'delivered' => false, 'failed' => false, '>at' => $sinceDate], 'at', false, 1)) {
if (!$sendeds = $db->getFromTableWhere('sendeds', ['target' => $number, 'delivered' => false, 'failed' => false, '>at' => $sinceDate], 'at', false, 1))
{
continue;
}
$sended = $sendeds[0];
//On gère les echecs
if (trim($text) == 'Failed') {
if ('Failed' === trim($text))
{
$db->updateTableWhere('sendeds', ['before_delivered' => 0, 'failed' => true], ['id' => $sended['id']]);
echo "Sended Sms id " . $sended['id'] . " pass to failed status\n";
echo 'Sended Sms id '.$sended['id']." pass to failed status\n";
continue;
}
//On gère le cas des messages de plus de 160 caractères, lesquels impliquent plusieurs accusés
if ($sended['before_delivered'] > 1) {
if ($sended['before_delivered'] > 1)
{
$db->updateTableWhere('sendeds', ['before_delivered' => $sended['before_delivered'] - 1], ['id' => $sended['id']]);
echo "Sended Sms id " . $sended['id'] . " before_delivered decrement\n";
echo 'Sended Sms id '.$sended['id']." before_delivered decrement\n";
continue;
}
//Si tout est bon, que nous avons assez d'accusés, nous validons !
$db->updateTableWhere('sendeds', ['before_delivered' => 0, 'delivered' => true], ['id' => $sended['id']]);
echo "Sended Sms id " . $sended['id'] . " to delivered status\n";
echo 'Sended Sms id '.$sended['id']." to delivered status\n";
continue;
}
if (!$number) {
error_log('Invalid phone number in file "' . $dir);
if (!$number)
{
error_log('Invalid phone number in file "'.$dir);
die(6);
}
//On va vérifier si on a reçu une commande, et des identifiants
$flags = \controllers\internals\Tool::parse_for_flag($text);
//On créer le tableau qui permettra de stocker les commandes trouvées
$found_commands = array();
$found_commands = [];
//Si on reçu des identifiants
if (array_key_exists('LOGIN', $flags) && array_key_exists('PASSWORD', $flags)) {
if (\array_key_exists('LOGIN', $flags) && \array_key_exists('PASSWORD', $flags))
{
//Si on a bien un utilisateur avec les identifiants reçus
$user = $db->getUserFromEmail($flags['LOGIN']);
error_log('We found ' . count($user) . ' users');
if ($user && $user['password'] == sha1($flags['PASSWORD'])) {
error_log('We found '.\count($user).' users');
if ($user && $user['password'] === sha1($flags['PASSWORD']))
{
error_log('Password is valid');
//On va passer en revue toutes les commandes, pour voir si on en trouve dans ce message
$commands = $db->getFromTableWhere('commands');
error_log('We found ' . count($commands) . ' commands');
foreach ($commands as $command) {
error_log('We found '.\count($commands).' commands');
foreach ($commands as $command)
{
$command_name = mb_strtoupper($command['name']);
if (array_key_exists($command_name, $flags)) {
error_log('We found command ' . $command_name);
if (\array_key_exists($command_name, $flags))
{
error_log('We found command '.$command_name);
//Si la commande ne nécessite pas d'être admin, ou si on est admin
if (!$command['admin'] || $user['admin']) {
if (!$command['admin'] || $user['admin'])
{
error_log('And the count is ok');
$found_commands[$command_name] = PWD_SCRIPTS . $command['script'] . escapeshellcmd($flags[$command_name]);
$found_commands[$command_name] = PWD_SCRIPTS.$command['script'].escapeshellcmd($flags[$command_name]);
}
}
}
@ -244,17 +290,19 @@ class Console extends \descartes\InternalController
}
//On va supprimer le mot de passe du Sms pour pouvoir l'enregistrer sans danger
if (isset($flags['PASSWORD'])) {
if (isset($flags['PASSWORD']))
{
$text = str_replace($flags['PASSWORD'], '*****', $text);
}
//On map les données et on créer le Sms reçu
$send_by = $number;
$content = $text;
$is_command = count($found_commands);
if (!$db->insertIntoTable('receiveds', ['at' => $date, 'send_by' => $send_by, 'content' => $content, 'is_command' => $is_command])) {
$is_command = \count($found_commands);
if (!$db->insertIntoTable('receiveds', ['at' => $date, 'send_by' => $send_by, 'content' => $content, 'is_command' => $is_command]))
{
echo "Erreur lors de l'enregistrement du Sms\n";
error_log('Unable to process the Sms in file "' . $dir);
error_log('Unable to process the Sms in file "'.$dir);
die(7);
}
@ -262,8 +310,9 @@ class Console extends \descartes\InternalController
$db->insertIntoTable('transfers', ['id_received' => $db->lastId(), 'progress' => false]);
//Chaque commande sera executée.
foreach ($found_commands as $command_name => $command) {
echo 'Execution de la commande : ' . $command_name . ' :: ' . $command . "\n";
foreach ($found_commands as $command_name => $command)
{
echo 'Execution de la commande : '.$command_name.' :: '.$command."\n";
exec($command);
}
}
@ -274,12 +323,14 @@ class Console extends \descartes\InternalController
}
/**
* Cette fonction permet d'envoyer par mail les sms à transférer
* Cette fonction permet d'envoyer par mail les sms à transférer.
*/
public function sendTransfers()
{
if (!RASPISms_SETTINGS_TRANSFER) {
if (!RASPISms_SETTINGS_TRANSFER)
{
echo "Le transfer de Sms est désactivé ! \n";
return false;
}
@ -288,27 +339,30 @@ class Console extends \descartes\InternalController
$ids_transfers = [];
$ids_receiveds = [];
foreach ($transfers as $transfer) {
foreach ($transfers as $transfer)
{
$ids_transfers[] = $transfer['id'];
$ids_receiveds[] = $transfer['id_received'];
}
$db->updateProgressTransfersIn($ids_transfers, true);
$receiveds = $db->getReceivedIn($ids_receiveds);
$users = $db->getFromTableWhere('users', ['transfer' => true]);
foreach ($users as $user) {
foreach ($receiveds as $received) {
echo "Transfer d'un Sms du " . $received['send_by'] . " à l'email " . $user['email'];
foreach ($users as $user)
{
foreach ($receiveds as $received)
{
echo "Transfer d'un Sms du ".$received['send_by']." à l'email ".$user['email'];
$to = $user['email'];
$subject = '[RaspiSms] - Transfert d\'un Sms du ' . $received['send_by'];
$message = "Le numéro " . $received['send_by'] . " vous a envoyé un Sms : \n" . $received['content'];
$subject = '[RaspiSms] - Transfert d\'un Sms du '.$received['send_by'];
$message = 'Le numéro '.$received['send_by']." vous a envoyé un Sms : \n".$received['content'];
$ok = mail($to, $subject, $message);
echo " ... " . ($ok ? 'OK' : 'KO') . "\n";
echo ' ... '.($ok ? 'OK' : 'KO')."\n";
}
}

View file

@ -1,8 +1,19 @@
<?php
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace controllers\internals;
/**
* Classe des contactes
* Classe des contactes.
*/
class Contact extends \descartes\InternalController
{
@ -16,9 +27,11 @@ namespace controllers\internals;
}
/**
* Cette fonction retourne une liste des contactes sous forme d'un tableau
* Cette fonction retourne une liste des contactes sous forme d'un tableau.
*
* @param mixed(int|bool) $nb_entry : Le nombre d'entrées à retourner par page
* @param mixed(int|bool) $page : Le numéro de page en cours
* @param mixed(int|bool) $page : Le numéro de page en cours
*
* @return array : La liste des contactes
*/
public function get_list($nb_entry = false, $page = false)
@ -28,8 +41,10 @@ namespace controllers\internals;
}
/**
* Cette fonction retourne une liste des contactes sous forme d'un tableau
* Cette fonction retourne une liste des contactes sous forme d'un tableau.
*
* @param array int $ids : Les ids des entrées à retourner
*
* @return array : La liste des contactes
*/
public function get_by_ids($ids)
@ -37,10 +52,12 @@ namespace controllers\internals;
//Recupération des contactes
return $this->model_contact->get_by_ids($ids);
}
/**
* Cette fonction retourne un contact par son numéro de tel
* Cette fonction retourne un contact par son numéro de tel.
*
* @param string $number : Le numéro du contact
*
* @return array : Le contact
*/
public function get_by_number($number)
@ -48,10 +65,12 @@ namespace controllers\internals;
//Recupération des contactes
return $this->model_contact->get_by_number($number);
}
/**
* Cette fonction retourne un contact par son name
* Cette fonction retourne un contact par son name.
*
* @param string $name : Le name du contact
*
* @return array : Le contact
*/
public function get_by_name($name)
@ -59,10 +78,10 @@ namespace controllers\internals;
//Recupération des contactes
return $this->model_contact->get_by_name($name);
}
/**
* Cette fonction permet de compter le nombre de contacts
* Cette fonction permet de compter le nombre de contacts.
*
* @return int : Le nombre d'entrées dans la table
*/
public function count()
@ -71,8 +90,10 @@ namespace controllers\internals;
}
/**
* Cette fonction va supprimer un contact
* Cette fonction va supprimer un contact.
*
* @param array $id : L'id du contact à supprimer
*
* @return int : Le nombre de contact supprimées;
*/
public function delete($id)
@ -81,8 +102,12 @@ namespace controllers\internals;
}
/**
* Cette fonction insert une nouvelle contacte
* Cette fonction insert une nouvelle contacte.
*
* @param array $contact : Un tableau représentant la contacte à insérer
* @param mixed $number
* @param mixed $name
*
* @return mixed bool|int : false si echec, sinon l'id de la nouvelle contacte insérée
*/
public function create($number, $name)
@ -93,17 +118,23 @@ namespace controllers\internals;
];
$result = $this->model_contact->insert($contact);
if (!$result) {
if (!$result)
{
return $result;
}
$this->internal_event->create('CONTACT_ADD', 'Ajout contact : ' . $name . ' (' . \controllers\internals\Tool::phone_add_space($number) . ')');
$this->internal_event->create('CONTACT_ADD', 'Ajout contact : '.$name.' ('.\controllers\internals\Tool::phone_add_space($number).')');
return $result;
}
/**
* Cette fonction met à jour une série de contactes
* Cette fonction met à jour une série de contactes.
*
* @param mixed $id
* @param mixed $number
* @param mixed $name
*
* @return int : le nombre de ligne modifiées
*/
public function update($id, $number, $name)
@ -112,7 +143,7 @@ namespace controllers\internals;
'number' => $number,
'name' => $name,
];
return $this->model_contact->update($id, $contact);
}
}

View file

@ -1,8 +1,19 @@
<?php
namespace controllers\internals;
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace controllers\internals;
/**
* Classe des Event
* Classe des Event.
*/
class Event extends \descartes\InternalController
{
@ -14,10 +25,12 @@
}
/**
* Cette fonction retourne une liste des events sous forme d'un tableau
* @param PDO $bdd : instance PDO de la base de donnée
* Cette fonction retourne une liste des events sous forme d'un tableau.
*
* @param PDO $bdd : instance PDO de la base de donnée
* @param mixed(int|bool) $nb_entry : Le nombre d'entrées à retourner par page
* @param mixed(int|bool) $page : Le numéro de page en cours
* @param mixed(int|bool) $page : Le numéro de page en cours
*
* @return array : La liste des events
*/
public function get_list($nb_entry = false, $page = false)
@ -27,8 +40,10 @@
}
/**
* Cette fonction retourne les X dernières entrées triées par date
* Cette fonction retourne les X dernières entrées triées par date.
*
* @param mixed false|int $nb_entry : Nombre d'entrée à retourner ou faux pour tout
*
* @return array : Les dernières entrées
*/
public function get_lasts_by_date($nb_entry = false)
@ -37,8 +52,11 @@
}
/**
* Cette fonction va supprimer une liste de contacts
* Cette fonction va supprimer une liste de contacts.
*
* @param array $ids : Les id des contactes à supprimer
* @param mixed $id
*
* @return int : Le nombre de contactes supprimées;
*/
public function delete($id)
@ -47,8 +65,12 @@
}
/**
* Cette fonction insert un nouvel event
* Cette fonction insert un nouvel event.
*
* @param array $event : Un tableau représentant l'event à insérer
* @param mixed $type
* @param mixed $text
*
* @return mixed bool|int : false si echec, sinon l'id du nouvel event inséré
*/
public function create($type, $text)

View file

@ -1,8 +1,19 @@
<?php
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace controllers\internals;
/**
* Classe des groups
* Classe des groups.
*/
class Group extends \descartes\InternalController
{
@ -16,9 +27,11 @@ namespace controllers\internals;
}
/**
* Cette fonction retourne une liste des groups sous forme d'un tableau
* Cette fonction retourne une liste des groups sous forme d'un tableau.
*
* @param mixed(int|bool) $nb_entry : Le nombre d'entrées à retourner par page
* @param mixed(int|bool) $page : Le numéro de page en cours
* @param mixed(int|bool) $page : Le numéro de page en cours
*
* @return array : La liste des groups
*/
public function get_list($nb_entry = false, $page = false)
@ -28,8 +41,10 @@ namespace controllers\internals;
}
/**
* Cette fonction retourne une liste des groups sous forme d'un tableau
* Cette fonction retourne une liste des groups sous forme d'un tableau.
*
* @param array int $ids : Les ids des entrées à retourner
*
* @return array : La liste des groups
*/
public function get_by_ids($ids)
@ -37,10 +52,12 @@ namespace controllers\internals;
//Recupération des groups
return $this->model_group->get_by_ids($ids);
}
/**
* Cette fonction retourne un group par son name
* Cette fonction retourne un group par son name.
*
* @param string $name : Le name du group
*
* @return array : Le group
*/
public function get_by_name($name)
@ -50,7 +67,8 @@ namespace controllers\internals;
}
/**
* Cette fonction permet de compter le nombre de group
* Cette fonction permet de compter le nombre de group.
*
* @return int : Le nombre d'entrées dans la table
*/
public function count()
@ -59,8 +77,10 @@ namespace controllers\internals;
}
/**
* Cette fonction va supprimer une liste de group
* Cette fonction va supprimer une liste de group.
*
* @param array $ids : Les id des groups à supprimer
*
* @return int : Le nombre de groups supprimées;
*/
public function delete($ids)
@ -69,9 +89,11 @@ namespace controllers\internals;
}
/**
* Cette fonction insert une nouvelle group
* @param array $name : le nom du group
* Cette fonction insert une nouvelle group.
*
* @param array $name : le nom du group
* @param array $contacts_ids : Un tableau des ids des contact du group
*
* @return mixed bool|int : false si echec, sinon l'id de la nouvelle group insérée
*/
public function create($name, $contacts_ids)
@ -81,24 +103,28 @@ namespace controllers\internals;
];
$id_group = $this->model_group->insert($group);
if (!$id_group) {
if (!$id_group)
{
return false;
}
foreach ($contacts_ids as $contact_id) {
foreach ($contacts_ids as $contact_id)
{
$this->model_group->insert_group_contact($id_group, $contact_id);
}
$this->internal_event->create('GROUP_ADD', 'Ajout group : ' . $name);
$this->internal_event->create('GROUP_ADD', 'Ajout group : '.$name);
return $id_group;
}
/**
* Cette fonction met à jour un group
* @param int $id : L'id du group à update
* @param string $name : Le nom du group à update
* Cette fonction met à jour un group.
*
* @param int $id : L'id du group à update
* @param string $name : Le nom du group à update
* @param string $contacts_ids : Les ids des contact du group
*
* @return bool : True if all update ok, false else
*/
public function update($id, $name, $contacts_ids)
@ -112,22 +138,27 @@ namespace controllers\internals;
$this->model_group->delete_group_contact($id);
$nb_contact_insert = 0;
foreach ($contacts_ids as $contact_id) {
if ($this->model_group->insert_group_contact($id, $contact_id)) {
$nb_contact_insert ++;
foreach ($contacts_ids as $contact_id)
{
if ($this->model_group->insert_group_contact($id, $contact_id))
{
++$nb_contact_insert;
}
}
if (!$result && $nb_contact_insert != count($contacts_ids)) {
if (!$result && $nb_contact_insert !== \count($contacts_ids))
{
return false;
}
return true;
}
/**
* Cette fonction retourne les contact pour un group
* Cette fonction retourne les contact pour un group.
*
* @param string $id : L'id du group
*
* @return array : Un tableau avec les contact
*/
public function get_contact($id)

View file

@ -1,8 +1,19 @@
<?php
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace controllers\internals;
/**
* Classe des receivedes
* Classe des receivedes.
*/
class Received extends \descartes\InternalController
{
@ -13,11 +24,12 @@ class Received extends \descartes\InternalController
$this->model_received = new \models\Received($bdd);
}
/**
* Cette fonction retourne une liste des receivedes sous forme d'un tableau
* Cette fonction retourne une liste des receivedes sous forme d'un tableau.
*
* @param mixed(int|bool) $nb_entry : Le nombre d'entrées à retourner par page
* @param mixed(int|bool) $page : Le numéro de page en cours
* @param mixed(int|bool) $page : Le numéro de page en cours
*
* @return array : La liste des receivedes
*/
public function get_list($nb_entry = false, $page = false)
@ -25,11 +37,12 @@ class Received extends \descartes\InternalController
//Recupération des receivedes
return $this->model_received->get_list($nb_entry, $nb_entry * $page);
}
/**
* Cette fonction retourne une liste des receivedes sous forme d'un tableau
* Cette fonction retourne une liste des receivedes sous forme d'un tableau.
*
* @param array int $ids : Les ids des entrées à retourner
*
* @return array : La liste des receivedes
*/
public function get_by_ids($ids)
@ -37,20 +50,24 @@ class Received extends \descartes\InternalController
//Recupération des receivedes
return $this->model_received->get_by_ids($ids);
}
/**
* Cette fonction retourne les X dernières entrées triées par date
* Cette fonction retourne les X dernières entrées triées par date.
*
* @param mixed false|int $nb_entry : Nombre d'entrée à retourner ou faux pour tout
*
* @return array : Les dernières entrées
*/
public function get_lasts_by_date($nb_entry = false)
{
return $this->model_received->get_lasts_by_date($nb_entry);
}
/**
* Cette fonction retourne une liste des receiveds sous forme d'un tableau
* Cette fonction retourne une liste des receiveds sous forme d'un tableau.
*
* @param string $origin : Le numéro depuis lequel est envoyé le message
*
* @return array : La liste des receiveds
*/
public function get_by_origin($origin)
@ -59,8 +76,10 @@ class Received extends \descartes\InternalController
}
/**
* Récupère les Sms reçus depuis une date
* Récupère les Sms reçus depuis une date.
*
* @param $date : La date depuis laquelle on veux les Sms (au format 2014-10-25 20:10:05)
*
* @return array : Tableau avec tous les Sms depuis la date
*/
public function get_since_by_date($date)
@ -69,9 +88,11 @@ class Received extends \descartes\InternalController
}
/**
* Récupère les Sms reçus depuis une date pour un numero
* Récupère les Sms reçus depuis une date pour un numero.
*
* @param $date : La date depuis laquelle on veux les Sms (au format 2014-10-25 20:10:05)
* @param $number : Le numéro
*
* @return array : Tableau avec tous les Sms depuis la date
*/
public function get_since_for_number_by_date($date, $number)
@ -80,8 +101,11 @@ class Received extends \descartes\InternalController
}
/**
* Cette fonction va supprimer une liste de receiveds
* Cette fonction va supprimer une liste de receiveds.
*
* @param array $ids : Les id des receivedes à supprimer
* @param mixed $id
*
* @return int : Le nombre de receivedes supprimées;
*/
public function delete($id)
@ -90,8 +114,14 @@ class Received extends \descartes\InternalController
}
/**
* Cette fonction insert une nouvelle receivede
* @param array $received : Un tableau représentant la receivede à insérer
* Cette fonction insert une nouvelle receivede.
*
* @param array $received : Un tableau représentant la receivede à insérer
* @param mixed $at
* @param mixed $origin
* @param mixed $content
* @param mixed $is_command
*
* @return mixed bool|int : false si echec, sinon l'id de la nouvelle receivede insérée
*/
public function create($at, $origin, $content, $is_command)
@ -107,7 +137,14 @@ class Received extends \descartes\InternalController
}
/**
* Cette fonction met à jour une série de receivedes
* Cette fonction met à jour une série de receivedes.
*
* @param mixed $id
* @param mixed $at
* @param mixed $origin
* @param mixed $content
* @param mixed $is_command
*
* @return int : le nombre de ligne modifiées
*/
public function update($id, $at, $origin, $content, $is_command)
@ -123,7 +160,8 @@ class Received extends \descartes\InternalController
}
/**
* Cette fonction permet de compter le nombre de receiveds
* Cette fonction permet de compter le nombre de receiveds.
*
* @return int : Le nombre d'entrées dans la table
*/
public function count()
@ -132,23 +170,28 @@ class Received extends \descartes\InternalController
}
/**
* Cette fonction compte le nombre de receiveds par jour depuis une date
* Cette fonction compte le nombre de receiveds par jour depuis une date.
*
* @param mixed $date
*
* @return array : un tableau avec en clef la date et en valeure le nombre de sms envoyés
*/
public function count_by_day_since($date)
{
$counts_by_day = $this->model_received->count_by_day_since($date);
$return = [];
foreach ($counts_by_day as $count_by_day) {
foreach ($counts_by_day as $count_by_day)
{
$return[$count_by_day['at_ymd']] = $count_by_day['nb'];
}
return $return;
}
/**
* Cette fonction retourne les discussions avec un numéro
* Cette fonction retourne les discussions avec un numéro.
*
* @return array : Un tableau avec la date de l'échange et le numéro de la personne
*/
public function get_discussions()

View file

@ -1,8 +1,19 @@
<?php
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace controllers\internals;
/**
* Classe des scheduledes
* Classe des scheduledes.
*/
class Scheduled extends \descartes\InternalController
{
@ -14,11 +25,13 @@ namespace controllers\internals;
$this->model_scheduled = new \models\Scheduled($bdd);
$this->internal_event = new \controllers\internals\Event($bdd);
}
/**
* Cette fonction retourne une liste des scheduledes sous forme d'un tableau
* Cette fonction retourne une liste des scheduledes sous forme d'un tableau.
*
* @param mixed(int|bool) $nb_entry : Le nombre d'entrées à retourner par page
* @param mixed(int|bool) $page : Le numéro de page en cours
* @param mixed(int|bool) $page : Le numéro de page en cours
*
* @return array : La liste des scheduledes
*/
public function get_list($nb_entry = false, $page = false)
@ -28,8 +41,10 @@ namespace controllers\internals;
}
/**
* Cette fonction retourne une liste des scheduledes sous forme d'un tableau
* Cette fonction retourne une liste des scheduledes sous forme d'un tableau.
*
* @param array int $ids : Les ids des entrées à retourner
*
* @return array : La liste des scheduledes
*/
public function get_by_ids($ids)
@ -39,9 +54,11 @@ namespace controllers\internals;
}
/**
* Cette fonction retourne les messages programmés avant une date et pour un numéro
* @param \DateTime $date : La date avant laquelle on veux le message
* @param string $number : Le numéro
* Cette fonction retourne les messages programmés avant une date et pour un numéro.
*
* @param \DateTime $date : La date avant laquelle on veux le message
* @param string $number : Le numéro
*
* @return array : Les messages programmés avant la date
*/
public function get_before_date_for_number($date, $number)
@ -50,7 +67,8 @@ namespace controllers\internals;
}
/**
* Cette fonction permet de compter le nombre de scheduled
* Cette fonction permet de compter le nombre de scheduled.
*
* @return int : Le nombre d'entrées dans la table
*/
public function count()
@ -59,8 +77,10 @@ namespace controllers\internals;
}
/**
* Cette fonction va supprimer un scheduled
* Cette fonction va supprimer un scheduled.
*
* @param int $id : L'id du scheduled à supprimer
*
* @return int : Le nombre de scheduledes supprimées;
*/
public function delete($id)
@ -69,31 +89,37 @@ namespace controllers\internals;
}
/**
* Cette fonction insert un nouveau scheduled
* @param array $scheduled : Le scheduled à créer avec at, content, flash, progress
* @param array $numbers : Les numéros auxquels envoyer le scheduled
* Cette fonction insert un nouveau scheduled.
*
* @param array $scheduled : Le scheduled à créer avec at, content, flash, progress
* @param array $numbers : Les numéros auxquels envoyer le scheduled
* @param array $contacts_ids : Les ids des contact auquels envoyer le scheduled
* @param array $groups_ids : Les ids des group auxquels envoyer le scheduled
* @param array $groups_ids : Les ids des group auxquels envoyer le scheduled
*
* @return mixed bool|int : false si echec, sinon l'id du nouveau scheduled inséré
*/
public function create($scheduled, $numbers = [], $contacts_ids = [], $groups_ids = [])
{
if (!$id_scheduled = $this->model_scheduled->insert($scheduled)) {
$date = date("Y-m-d H:i:s");
$this->internal_event->create('SCHEDULED_ADD', 'Ajout d\'un Sms pour le ' . $date . '.');
if (!$id_scheduled = $this->model_scheduled->insert($scheduled))
{
$date = date('Y-m-d H:i:s');
$this->internal_event->create('SCHEDULED_ADD', 'Ajout d\'un Sms pour le '.$date.'.');
return false;
}
foreach ($numbers as $number) {
foreach ($numbers as $number)
{
$this->model_scheduled->insert_scheduled_number($id_scheduled, $number);
}
foreach ($contacts_ids as $contact_id) {
foreach ($contacts_ids as $contact_id)
{
$this->model_scheduled->insert_scheduled_contact($id_scheduled, $contact_id);
}
foreach ($groups_ids as $group_id) {
foreach ($groups_ids as $group_id)
{
$this->model_scheduled->insert_scheduled_group($id_scheduled, $group_id);
}
@ -101,45 +127,52 @@ namespace controllers\internals;
}
/**
* Cette fonction met à jour une série de scheduledes
* @param array $scheduleds : Un tableau de scheduled à modifier avec at, content, flash, progress + pour chaque scheduled number, contact_ids, group_ids
* @param array $numbers : Les numéros auxquels envoyer le scheduled
* Cette fonction met à jour une série de scheduledes.
*
* @param array $scheduleds : Un tableau de scheduled à modifier avec at, content, flash, progress + pour chaque scheduled number, contact_ids, group_ids
* @param array $numbers : Les numéros auxquels envoyer le scheduled
* @param array $contacts_ids : Les ids des contact auquels envoyer le scheduled
* @param array $groups_ids : Les ids des group auxquels envoyer le scheduled
* @param array $groups_ids : Les ids des group auxquels envoyer le scheduled
*
* @return int : le nombre de ligne modifiées
*/
public function update($scheduleds)
{
$nb_update = 0;
foreach ($scheduleds as $scheduled) {
foreach ($scheduleds as $scheduled)
{
$result = $this->model_scheduled->update($scheduled['scheduled']['id'], $scheduled['scheduled']);
$this->model_scheduled->delete_scheduled_number($scheduled['scheduled']['id']);
$this->model_scheduled->delete_scheduled_contact($scheduled['scheduled']['id']);
$this->model_scheduled->delete_scheduled_group($scheduled['scheduled']['id']);
foreach ($scheduled['number'] as $number) {
foreach ($scheduled['number'] as $number)
{
$this->model_scheduled->insert_scheduled_number($scheduled['scheduled']['id'], $number);
}
foreach ($scheduled['contact_ids'] as $contact_id) {
foreach ($scheduled['contact_ids'] as $contact_id)
{
$this->model_scheduled->insert_scheduled_contact($scheduled['scheduled']['id'], $contact_id);
}
foreach ($scheduled['group_ids'] as $group_id) {
foreach ($scheduled['group_ids'] as $group_id)
{
$this->model_scheduled->insert_scheduled_group($scheduled['scheduled']['id'], $group_id);
}
$nb_update ++;
++$nb_update;
}
return $nb_update;
}
/**
* Cette fonction retourne une liste de numéro pour un scheduled
* Cette fonction retourne une liste de numéro pour un scheduled.
*
* @param int $id_scheduled : L'id du scheduled pour lequel on veux le numéro
*
* @return array : La liste des scheduledes
*/
public function get_number($id_scheduled)
@ -149,8 +182,10 @@ namespace controllers\internals;
}
/**
* Cette fonction retourne une liste de contact pour un scheduled
* Cette fonction retourne une liste de contact pour un scheduled.
*
* @param int $id_scheduled : L'id du scheduled pour lequel on veux le numéro
*
* @return array : La liste des contact
*/
public function get_contact($id_scheduled)
@ -158,10 +193,12 @@ namespace controllers\internals;
//Recupération des scheduledes
return $this->model_scheduled->get_contact($id_scheduled);
}
/**
* Cette fonction retourne une liste de group pour un scheduled
* Cette fonction retourne une liste de group pour un scheduled.
*
* @param int $id_scheduled : L'id du scheduled pour lequel on veux le numéro
*
* @return array : La liste des group
*/
public function get_group($id_scheduled)

View file

@ -1,8 +1,19 @@
<?php
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace controllers\internals;
/**
* Classe des sendedes
* Classe des sendedes.
*/
class Sended extends \descartes\InternalController
{
@ -14,9 +25,11 @@ namespace controllers\internals;
}
/**
* Cette fonction retourne une liste des sendedes sous forme d'un tableau
* Cette fonction retourne une liste des sendedes sous forme d'un tableau.
*
* @param mixed(int|bool) $nb_entry : Le nombre d'entrées à retourner par page
* @param mixed(int|bool) $page : Le numéro de page en cours
* @param mixed(int|bool) $page : Le numéro de page en cours
*
* @return array : La liste des sendedes
*/
public function get_list($nb_entry = false, $page = false)
@ -26,8 +39,10 @@ namespace controllers\internals;
}
/**
* Cette fonction retourne une liste des sendedes sous forme d'un tableau
* Cette fonction retourne une liste des sendedes sous forme d'un tableau.
*
* @param array int $ids : Les ids des entrées à retourner
*
* @return array : La liste des sendedes
*/
public function get_by_ids($ids)
@ -37,18 +52,22 @@ namespace controllers\internals;
}
/**
* Cette fonction retourne les X dernières entrées triées par date
* Cette fonction retourne les X dernières entrées triées par date.
*
* @param mixed false|int $nb_entry : Nombre d'entrée à retourner ou faux pour tout
*
* @return array : Les dernières entrées
*/
public function get_lasts_by_date($nb_entry = false)
{
return $this->model_sended->get_lasts_by_date($nb_entry);
}
/**
* Cette fonction retourne une liste des receivedes sous forme d'un tableau
* Cette fonction retourne une liste des receivedes sous forme d'un tableau.
*
* @param string $target : Le numéro de à qui est envoyé le message
*
* @return array : La liste des sendeds
*/
public function get_by_target($target)
@ -57,10 +76,12 @@ namespace controllers\internals;
return $this->model_sended->get_by_target($target);
}
/**
* Cette fonction va supprimer une liste de sendeds
* Cette fonction va supprimer une liste de sendeds.
*
* @param array $ids : Les id des sendedes à supprimer
* @param mixed $id
*
* @return int : Le nombre de sendedes supprimées;
*/
public function delete($id)
@ -69,8 +90,10 @@ namespace controllers\internals;
}
/**
* Cette fonction insert une nouvelle sendede
* Cette fonction insert une nouvelle sendede.
*
* @param array $sended : Un tableau représentant la sendede à insérer
*
* @return mixed bool|int : false si echec, sinon l'id de la nouvelle sendede insérée
*/
public function create($sended)
@ -79,25 +102,31 @@ namespace controllers\internals;
}
/**
* Cette fonction met à jour une série de sendedes
* Cette fonction met à jour une série de sendedes.
*
* @param mixed $sendeds
*
* @return int : le nombre de ligne modifiées
*/
public function update($sendeds)
{
$nb_update = 0;
foreach ($sendeds as $sended) {
foreach ($sendeds as $sended)
{
$result = $this->model_sended->update($sended['id'], $sended);
if ($result) {
$nb_update ++;
if ($result)
{
++$nb_update;
}
}
return $nb_update;
}
/**
* Cette fonction permet de compter le nombre de sendeds
* Cette fonction permet de compter le nombre de sendeds.
*
* @return int : Le nombre d'entrées dans la table
*/
public function count()
@ -106,15 +135,19 @@ namespace controllers\internals;
}
/**
* Cette fonction compte le nombre de sendeds par jour depuis une date
* Cette fonction compte le nombre de sendeds par jour depuis une date.
*
* @param mixed $date
*
* @return array : un tableau avec en clef la date et en valeure le nombre de sms envoyés
*/
public function count_by_day_since($date)
{
$counts_by_day = $this->model_sended->count_by_day_since($date);
$return = [];
foreach ($counts_by_day as $count_by_day) {
foreach ($counts_by_day as $count_by_day)
{
$return[$count_by_day['at_ymd']] = $count_by_day['nb'];
}

View file

@ -1,5 +1,16 @@
<?php
namespace controllers\internals;
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace controllers\internals;
class Setting extends \descartes\InternalController
{
@ -11,7 +22,8 @@
}
/**
* Return all settings
* Return all settings.
*
* @return array || false
*/
public function all()
@ -20,9 +32,11 @@
}
/**
* Update a setting by his name
* Update a setting by his name.
*
* @param mixed $value
*/
public function update(string $name, $value) : bool
public function update(string $name, $value): bool
{
return (bool) $this->model_setting->update($name, $value);
}

View file

@ -1,8 +1,19 @@
<?php
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace controllers\internals;
/**
* Classe des smsstopes
* Classe des smsstopes.
*/
class SmsStop extends \descartes\InternalController
{
@ -14,9 +25,11 @@ namespace controllers\internals;
}
/**
* Cette fonction retourne une liste des smsstopes sous forme d'un tableau
* Cette fonction retourne une liste des smsstopes sous forme d'un tableau.
*
* @param mixed(int|bool) $nb_entry : Le nombre d'entrées à retourner par page
* @param mixed(int|bool) $page : Le numéro de page en cours
* @param mixed(int|bool) $page : Le numéro de page en cours
*
* @return array : La liste des smsstopes
*/
public function get_list($nb_entry = false, $page = false)
@ -26,8 +39,10 @@ namespace controllers\internals;
}
/**
* Cette fonction retourne une liste des smsstopes sous forme d'un tableau
* Cette fonction retourne une liste des smsstopes sous forme d'un tableau.
*
* @param array int $ids : Les ids des entrées à retourner
*
* @return array : La liste des smsstopes
*/
public function get_by_ids($ids)
@ -35,10 +50,12 @@ namespace controllers\internals;
//Recupération des smsstopes
return $this->model_sms_stop->get_by_ids($ids);
}
/**
* Cette fonction retourne un smsstop par son numéro de tel
* Cette fonction retourne un smsstop par son numéro de tel.
*
* @param string $number : Le numéro du smsstop
*
* @return array : Le smsstop
*/
public function get_by_number($number)
@ -46,10 +63,10 @@ namespace controllers\internals;
//Recupération des smsstopes
return $this->model_sms_stop->get_by_number($number);
}
/**
* Cette fonction permet de compter le nombre de smsstops
* Cette fonction permet de compter le nombre de smsstops.
*
* @return int : Le nombre d'entrées dans la table
*/
public function count()
@ -58,8 +75,11 @@ namespace controllers\internals;
}
/**
* Cette fonction va supprimer une liste de smsstops
* Cette fonction va supprimer une liste de smsstops.
*
* @param array $ids : Les id des smsstopes à supprimer
* @param mixed $id
*
* @return int : Le nombre de smsstopes supprimées;
*/
public function delete($id)
@ -68,8 +88,10 @@ namespace controllers\internals;
}
/**
* Cette fonction insert une nouvelle smsstope
* Cette fonction insert une nouvelle smsstope.
*
* @param array $smsstop : Un tableau représentant la smsstope à insérer
*
* @return mixed bool|int : false si echec, sinon l'id de la nouvelle smsstope insérée
*/
public function create($smsstop)
@ -78,20 +100,25 @@ namespace controllers\internals;
}
/**
* Cette fonction met à jour une série de smsstopes
* Cette fonction met à jour une série de smsstopes.
*
* @param mixed $smsstops
*
* @return int : le nombre de ligne modifiées
*/
public function update($smsstops)
{
$nb_update = 0;
foreach ($smsstops as $smsstop) {
foreach ($smsstops as $smsstop)
{
$result = $this->model_sms_stop->update($smsstop['id'], $smsstop);
if ($result) {
$nb_update ++;
if ($result)
{
++$nb_update;
}
}
return $nb_update;
}
}

View file

@ -1,26 +1,42 @@
<?php
namespace controllers\internals;
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace controllers\internals;
class Tool extends \descartes\InternalController
{
/**
* Cette fonction parse un numéro pour le retourner sans espaces, etc.
*
* @param string $number : Le numéro de téléphone à parser
*
* @return mixed : Si le numéro est bien un numéro de téléphone, on retourne le numéro parsé. Sinon, on retourne faux
*/
public static function parse_phone($number)
{
$number = preg_replace('#[^-0-9+]#', '', $number);
if (preg_match('#^(0|\+[1-9]{1,3}|\+1\-[0-9]{3})[1-9][0-9]{8,10}$#', $number)) {
if (preg_match('#^(0|\+[1-9]{1,3}|\+1\-[0-9]{3})[1-9][0-9]{8,10}$#', $number))
{
return $number;
}
return false;
}
/**
* Cette fonction parse un numéro pour le retourner avec des espaces, etc.
*
* @param string $number : Le numéro de téléphone à parser
*
* @return mixed : Si le numéro est bien un numéro de téléphone, on retourne le numéro parsé. Sinon, on retourne faux
*/
public static function phone_add_space($number)
@ -30,7 +46,9 @@
/**
* Cette fonction fait la correspondance entre un type d'evenement et une icone font awesome.
*
* @param string $type : Le type de l'évenement à analyser
*
* @return string : Le nom de l'icone à afficher (ex : fa-user)
*/
public static function event_type_to_icon($type)
@ -38,18 +56,23 @@
switch ($type) {
case 'USER_ADD':
$logo = 'fa-user';
break;
case 'CONTACT_ADD':
$logo = 'fa-user';
break;
case 'GROUP_ADD':
$logo = 'fa-group';
break;
case 'SCHEDULED_ADD':
$logo = 'fa-calendar';
break;
case 'COMMAND_ADD':
$logo = 'fa-terminal';
break;
default:
$logo = 'fa-question';
@ -59,37 +82,45 @@
}
/**
* Cette fonction vérifie une date
* @param string $date : La date a valider
* Cette fonction vérifie une date.
*
* @param string $date : La date a valider
* @param string $format : Le format de la date
* @return boolean : Vrai si la date et valide, faux sinon
*
* @return bool : Vrai si la date et valide, faux sinon
*/
public static function validate_date($date, $format)
{
$objectDate = \DateTime::createFromFormat($format, $date);
return ($objectDate && $objectDate->format($format) == $date);
return $objectDate && $objectDate->format($format) === $date;
}
/**
* Cette fonction parse un texte, pour en extraire des données contenu dans des drapeaux au format [FLAG:contenu du drapeau]
* Cette fonction parse un texte, pour en extraire des données contenu dans des drapeaux au format [FLAG:contenu du drapeau].
*
* @param string $texte : Le texte à parser
*
* @return mixed : Tableau de la forme 'FLAG' => 'contenu du drapeau'. si on trouve une forme correcte (Le contenu de FLAG sera mis en majuscule automatiquement). Sinon le tableau vide.
*/
public static function parse_for_flag($texte)
{
$returns = array();
$results = array();
while (preg_match('#\[(.*)(?<!\\\):(.*)(?<!\\\)\]#Uui', $texte, $results)) { //Tant qu'on recuèpre un flag
$returns = [];
$results = [];
while (preg_match('#\[(.*)(?<!\\\):(.*)(?<!\\\)\]#Uui', $texte, $results))
{ //Tant qu'on recuèpre un flag
$returns[mb_strtoupper($results[1])] = $results[2];
$texte = str_replace($results[0], '', $texte);
}
return $returns;
}
/**
* Cette fonction retourne un mot de passe généré aléatoirement
* Cette fonction retourne un mot de passe généré aléatoirement.
*
* @param int $length : Taille du mot de passe à générer
*
* @return string : Le mot de passe aléatoire
*/
public static function generate_password($length)
@ -98,32 +129,36 @@
$password = '';
$chars_length = mb_strlen($chars) - 1;
$i = 0;
while ($i < $length) {
$i ++;
while ($i < $length)
{
++$i;
$password .= $chars[rand(0, $chars_length)];
}
return $password;
}
/**
* Cette fonction vérifie si un utilisateur et connecté, et si il ne l'est pas, redirige sur la page de connexion
* @return void
* Cette fonction vérifie si un utilisateur et connecté, et si il ne l'est pas, redirige sur la page de connexion.
*/
public static function verifyconnect()
{
if (!isset($_SESSION['connect']) || !$_SESSION['connect']) {
if (!isset($_SESSION['connect']) || !$_SESSION['connect'])
{
header('Location: /');
die();
}
}
/**
* Check if the user is admin.
* @return Bool : True if admin, False else
*
* @return bool : True if admin, False else
*/
public static function is_admin()
{
if (!isset($_SESSION['user']) || !$_SESSION['connect']['admin']) {
if (!isset($_SESSION['user']) || !$_SESSION['connect']['admin'])
{
return false;
}
@ -131,15 +166,17 @@
}
/**
* Cette fonction s'occupe d'envoyer les emails
* @param string $to : L'adresse mail à laquelle envoyer le mail
* @param array $settings : Les settings du mail, type, sujet, template
* @param array $datas : Les données à fournir au template du mail
* Cette fonction s'occupe d'envoyer les emails.
*
* @param string $to : L'adresse mail à laquelle envoyer le mail
* @param array $settings : Les settings du mail, type, sujet, template
* @param array $datas : Les données à fournir au template du mail
*/
public static function send_email($to, $settings, $datas = [])
{
$controller = new \descartes\Controller();
$content = $controller->render($settings['template'], $datas, true);
return true;#mail($to, $settings['subject'], $content);
return true; //mail($to, $settings['subject'], $content);
}
}

View file

@ -1,5 +1,16 @@
<?php
namespace controllers\internals;
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace controllers\internals;
class User extends \descartes\InternalController
{
@ -13,19 +24,24 @@
}
/**
* Return list of users as an array
* Return list of users as an array.
*
* @param mixed(int|bool) $nb_entry : Number of entry to return
* @param mixed(int|bool) $page : Numero of page
* @param mixed(int|bool) $page : Numero of page
*
* @return array|bool : List of user or false
*/
public function list(?int $nb_entry = null, ?int $page = null)
{
return $this->model_user->list($nb_entry, $page);
}
/**
* Cette fonction va supprimer une liste de users
* Cette fonction va supprimer une liste de users.
*
* @param array $ids : Les id des useres à supprimer
* @param mixed $id
*
* @return int : Le nombre de useres supprimées;
*/
public function delete($id)
@ -34,19 +50,23 @@
}
/**
* Cette fonction vérifie s'il existe un utilisateur qui corresponde à ce couple login/password
* @param string $email : L'eamil de l'utilisateur
* Cette fonction vérifie s'il existe un utilisateur qui corresponde à ce couple login/password.
*
* @param string $email : L'eamil de l'utilisateur
* @param string $password : Le mot de passe de l'utilisateur
*
* @return mixed false | array : False si pas de user, le user correspondant sous forme d'array sinon
*/
public function check_credentials($email, $password)
{
$user = $this->model_user->get_by_email($email);
if (!$user) {
if (!$user)
{
return false;
}
if (!password_verify($password, $user['password'])) {
if (!password_verify($password, $user['password']))
{
return false;
}
@ -54,32 +74,39 @@
}
/**
* Update a user password
* @param string $id : User id
* Update a user password.
*
* @param string $id : User id
* @param string $password : New password
*
* @return bool;
*/
public function update_password(int $id, string $password) : bool
public function update_password(int $id, string $password): bool
{
$password = password_hash($password, PASSWORD_DEFAULT);
return (bool) $this->model_user->update_password($id, $password);
}
/**
* Update a user transfer property value
* @param string $id : User id
* Update a user transfer property value.
*
* @param string $id : User id
* @param string $transfer : New value of property transfer
*
* @return boolean;
*/
public function update_transfer(int $id, int $transfer) : bool
public function update_transfer(int $id, int $transfer): bool
{
return (bool) $this->model_user->update_transfer($id, $transfer);
}
/**
* Update user email
* @param string $id : user id
* Update user email.
*
* @param string $id : user id
* @param string $email : new mail
*
* @return boolean;
*/
public function update_email($id, $email)
@ -88,8 +115,10 @@
}
/**
* Cette fonction retourne un utilisateur pour un mail donné
* Cette fonction retourne un utilisateur pour un mail donné.
*
* @param string $email : L'email de l'utilisateur
*
* @return mixed boolean | array : false si pas de user pour le mail, le user sinon
*/
public function get_by_email($email)
@ -98,7 +127,14 @@
}
/**
* Cette fonction met à jour une série de users
* Cette fonction met à jour une série de users.
*
* @param mixed $id
* @param mixed $email
* @param mixed $password
* @param mixed $admin
* @param mixed $transfer
*
* @return int : le nombre de ligne modifiées
*/
public function update($id, $email, $password, $admin, $transfer)
@ -112,10 +148,16 @@
return $this->model_user->update($id, $user);
}
/**
* Cette fonction insert une nouvelle usere
* @param array $user : Un tableau représentant la usere à insérer
* Cette fonction insert une nouvelle usere.
*
* @param array $user : Un tableau représentant la usere à insérer
* @param mixed $email
* @param mixed $password
* @param mixed $admin
* @param mixed $transfer
*
* @return mixed bool|int : false si echec, sinon l'id de la nouvelle usere insérée
*/
public function create($email, $password, $admin, $transfer = false)
@ -129,12 +171,13 @@
$result = $this->model_user->insert($user);
if (!$result) {
if (!$result)
{
return false;
}
$this->internal_event->create('CONTACT_ADD', 'Ajout de l\'utilisateur : ' . $email . '.');
$this->internal_event->create('CONTACT_ADD', 'Ajout de l\'utilisateur : '.$email.'.');
return $result;
}
}