Fix all phpstan and php-cs-fixer errors

This commit is contained in:
osaajani 2019-10-30 00:17:10 +01:00
parent 117c18ddca
commit 485a0cb6fd
39 changed files with 994 additions and 1142 deletions

View file

@ -7,6 +7,7 @@ namespace controllers\internals;
class Command extends \descartes\InternalController
{
private $model_command;
private $internal_event;
public function __construct(\PDO $bdd)
{
@ -23,9 +24,7 @@ namespace controllers\internals;
*/
public function list($nb_entry = false, $page = false)
{
//Recupération des commandes
$model_command = new \models\Command($this->bdd);
return $model_command->list($nb_entry, $nb_entry * $page);
return $this->model_command->list($nb_entry, $nb_entry * $page);
}
/**
@ -36,8 +35,7 @@ namespace controllers\internals;
public function get_by_ids($ids)
{
//Recupération des commandes
$modelCommand = new \models\Command($this->bdd);
return $modelCommand->get_by_ids($ids);
return $this->model_command->get_by_ids($ids);
}
/**
@ -46,8 +44,7 @@ namespace controllers\internals;
*/
public function count()
{
$modelCommand = new \models\Command($this->bdd);
return $modelCommand->count();
return $this->model_command->count();
}
/**
@ -57,8 +54,7 @@ namespace controllers\internals;
*/
public function delete($id)
{
$modelCommand = new \models\Command($this->bdd);
return $modelCommand->delete_by_id($id);
return $this->model_command->delete_by_id($id);
}
/**
@ -74,15 +70,13 @@ namespace controllers\internals;
'admin' => $admin,
];
$modelCommand = new \models\Command($this->bdd);
$result = $modelCommand->insert($command);
$result = $this->model_command->insert($command);
if (!$result) {
return false;
}
$internalEvent = new \controllers\internals\Event($this->bdd);
$internalEvent->create('COMMAND_ADD', 'Ajout commande : ' . $name . ' => ' . $script);
$this->internal_event->create('COMMAND_ADD', 'Ajout commande : ' . $name . ' => ' . $script);
return $result;
}
@ -92,15 +86,13 @@ namespace controllers\internals;
*/
public function update($id, $name, $script, $admin)
{
$modelCommand = new \models\Command($this->bdd);
$command = [
'name' => $name,
'script' => $script,
'admin' => $admin,
];
$result = $modelCommand->update($id, $command);
$result = $this->model_command->update($id, $command);
return $result;
}

View file

@ -3,66 +3,8 @@ namespace controllers\internals;
class Console extends \descartes\InternalController
{
/**
* Cette fonction retourne l'aide de la console
*/
public function help()
{
//On définit les commandes disponibles
$commands = array(
'sendScheduled' => array(
'description' => 'Cette commande permet d\'envoyer les SMS programmés qui doivent l\'êtres.',
'requireds' => array(),
'optionals' => array(),
),
'parseReceivedSMS' => array(
'description' => 'Cette commande permet d\'enregistrer un SMS, et de l\'analyser pour voir s\'il contient une commande. Pour cela, il analyse le dossier PWD_RECEIVEDS',
'requireds' => array(
),
'optionals' => array(),
),
'sendTransfers' => array(
'description' => 'Cette commande permet d\'envoyer par mails les sms à transférés.',
'requireds' => [],
'optionals' => [],
),
);
$message = "Vous êtes ici dans l'aide de la console.\n";
$message .= "Voici la liste des commandes disponibles : \n";
//On écrit les texte pour la liste des commandes dispos
foreach ($commands as $name => $value) {
$requireds = isset($value['requireds']) ? $value['requireds'] : array();
$optionals = isset($value['optionals']) ? $value['optionals'] : array();
$message .= ' ' . $name . ' : ' . $value['description'] . "\n";
$message .= " Arguments obligatoires : \n";
if (!count($requireds)) {
$message .= " Pas d'argument\n";
} else {
foreach ($requireds as $argument => $desc) {
$message .= ' - ' . $argument . ' : ' . $desc . "\n";
}
}
$message .= " Arguments optionnels : \n";
if (!count($optionals)) {
$message .= " Pas d'argument\n";
} else {
foreach ($optionals as $argument => $desc) {
$message .= ' - ' . $argument . ' : ' . $desc . "\n";
}
}
}
echo $message;
}
/**
* 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()
{
@ -73,31 +15,31 @@ class Console extends \descartes\InternalController
$now = new \DateTime();
$now = $now->format('Y-m-d H:i:s');
echo "Début de l'envoi des SMS programmés\n";
echo "Début de l'envoi des Sms programmés\n";
$scheduleds = $db->getScheduledNotInProgressBefore($now);
$ids_scheduleds = array();
//On passe en cours de progression tous les SMS
//On passe en cours de progression tous les Sms
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
//Pour chaque Sms à envoyer
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
//On initialise les numéros auxquelles envoyer le Sms
$numbers = array();
//On récupère les numéros pour le SMS et on les ajoute
//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) {
$numbers[] = $target_number['number'];
@ -109,11 +51,11 @@ class Console extends \descartes\InternalController
$numbers[] = $contact['number'];
}
//On récupère les groupes
$groupes = $db->getGroupeForScheduled($id_scheduled);
foreach ($groupes as $groupe) {
//On récupère les contacts du groupe et on les ajoute aux numéros
$contacts = $db->getContactForGroupe($groupe['id']);
//On récupère les groups
$groups = $db->getGroupForScheduled($id_scheduled);
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) {
$numbers[] = $contact['number'];
}
@ -122,48 +64,48 @@ class Console extends \descartes\InternalController
$smsStops = $db->getFromTableWhere('smsstop');
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) {
//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'])) {
continue;
}
echo "Un SMS destiné au " . $number . " a été bloqué par SMS STOP\n";
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";
//On ajoute le SMS aux SMS envoyés
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
//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";
}
$id_sended = $db->lastId();
//Commande qui envoie le SMS
//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) {
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
//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
//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 &';
exec($commande); //On execute la commande d'envoie d'un SMS
exec($commande); //On execute la commande d'envoie d'un Sms
}
}
echo "Tous les SMS sont en cours d'envoi.\n";
//Tous les SMS ont été envoyés.
echo "Tous les Sms sont en cours d'envoi.\n";
//Tous les Sms ont été envoyés.
$db->deleteScheduledIn($ids_scheduleds);
//On dors 2 secondes
@ -172,9 +114,9 @@ class Console extends \descartes\InternalController
}
/**
* Cette fonction reçoit un SMS, et l'enregistre, en essayant dde trouver une commande au passage.
* Cette fonction reçoit un Sms, et l'enregistre, en essayant dde trouver une commande au passage.
*/
public function parseReceivedSMS()
public function parseReceivedSms()
{
//On créer l'objet de base de données
global $db;
@ -186,9 +128,9 @@ class Console extends \descartes\InternalController
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)
//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);
@ -197,13 +139,13 @@ class Console extends \descartes\InternalController
//Si on peux pas ouvrir le fichier, on quitte en logant une erreur
if ($content_file == false) {
$this->wlog('Unable to read file "' . $dir);
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)) {
$this->wlog('Unable to delete file "' . $dir);
error_log('Unable to delete file "' . $dir);
die(8);
}
@ -211,28 +153,28 @@ class Console extends \descartes\InternalController
//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])) {
$this->wlog('Missing params in file "' . $dir);
error_log('Missing params in file "' . $dir);
die(5);
}
$number = $content_file[0];
$number = internalTool::parse_phone($number);
$number = \controllers\internals\Tool::parse_phone($number);
$text = $content_file[1];
//On gère les SMS STOP
//On gère les Sms STOP
if (trim($text) == 'STOP') {
echo 'STOP SMS detected ' . $number . "\n";
$this->wlog('STOP SMS detected ' . $number);
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";
$this->wlog('Delivered or Failed SMS for ' . $number);
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
//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');
@ -246,30 +188,30 @@ class Console extends \descartes\InternalController
//On gère les echecs
if (trim($text) == 'Failed') {
$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) {
$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) {
$this->wlog('Invalid phone number in file "' . $dir);
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 = internalTool::parse_for_flag($text);
$flags = \controllers\internals\Tool::parse_for_flag($text);
//On créer le tableau qui permettra de stocker les commandes trouvées
@ -279,21 +221,21 @@ class Console extends \descartes\InternalController
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']);
$this->wlog('We found ' . count($user) . ' users');
error_log('We found ' . count($user) . ' users');
if ($user && $user['password'] == sha1($flags['PASSWORD'])) {
$this->wlog('Password is valid');
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');
$this->wlog('We found ' . count($commands) . ' commands');
error_log('We found ' . count($commands) . ' commands');
foreach ($commands as $command) {
$command_name = mb_strtoupper($command['name']);
if (array_key_exists($command_name, $flags)) {
$this->wlog('We found command ' . $command_name);
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']) {
$this->wlog('And the count is ok');
error_log('And the count is ok');
$found_commands[$command_name] = PWD_SCRIPTS . $command['script'] . escapeshellcmd($flags[$command_name]);
}
}
@ -301,22 +243,22 @@ class Console extends \descartes\InternalController
}
}
//On va supprimer le mot de passe du SMS pour pouvoir l'enregistrer sans danger
//On va supprimer le mot de passe du Sms pour pouvoir l'enregistrer sans danger
if (isset($flags['PASSWORD'])) {
$text = str_replace($flags['PASSWORD'], '*****', $text);
}
//On map les données et on créer le SMS reçu
//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])) {
echo "Erreur lors de l'enregistrement du SMS\n";
$this->wlog('Unable to process the SMS in file "' . $dir);
echo "Erreur lors de l'enregistrement du Sms\n";
error_log('Unable to process the Sms in file "' . $dir);
die(7);
}
//On insert le SMS dans le tableau des sms à envoyer par mail
//On insert le Sms dans le tableau des sms à envoyer par mail
$db->insertIntoTable('transfers', ['id_received' => $db->lastId(), 'progress' => false]);
//Chaque commande sera executée.
@ -336,8 +278,8 @@ class Console extends \descartes\InternalController
*/
public function sendTransfers()
{
if (!RASPISMS_SETTINGS_TRANSFER) {
echo "Le transfer de SMS est désactivé ! \n";
if (!RASPISms_SETTINGS_TRANSFER) {
echo "Le transfer de Sms est désactivé ! \n";
return false;
}
@ -359,10 +301,10 @@ class Console extends \descartes\InternalController
foreach ($users as $user) {
foreach ($receiveds as $received) {
echo "Transfer d'un SMS du " . $received['send_by'] . " à l'email " . $user['email'];
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);

View file

@ -6,6 +6,14 @@ namespace controllers\internals;
*/
class Contact extends \descartes\InternalController
{
private $model_contact;
private $internal_event;
public function __construct(\PDO $bdd)
{
$this->model_contact = new \models\Contact($bdd);
$this->internal_event = new \controllers\internals\Event($bdd);
}
/**
* Cette fonction retourne une liste des contactes sous forme d'un tableau
@ -16,8 +24,7 @@ namespace controllers\internals;
public function get_list($nb_entry = false, $page = false)
{
//Recupération des contactes
$modelContact = new \models\Contact($this->bdd);
return $modelContact->get_list($nb_entry, $nb_entry * $page);
return $this->model_contact->get_list($nb_entry, $nb_entry * $page);
}
/**
@ -28,8 +35,7 @@ namespace controllers\internals;
public function get_by_ids($ids)
{
//Recupération des contactes
$modelContact = new \models\Contact($this->bdd);
return $modelContact->get_by_ids($ids);
return $this->model_contact->get_by_ids($ids);
}
/**
@ -40,8 +46,7 @@ namespace controllers\internals;
public function get_by_number($number)
{
//Recupération des contactes
$modelContact = new \models\Contact($this->bdd);
return $modelContact->get_by_number($number);
return $this->model_contact->get_by_number($number);
}
/**
@ -52,8 +57,7 @@ namespace controllers\internals;
public function get_by_name($name)
{
//Recupération des contactes
$modelContact = new \models\Contact($this->bdd);
return $modelContact->get_by_name($name);
return $this->model_contact->get_by_name($name);
}
@ -63,8 +67,7 @@ namespace controllers\internals;
*/
public function count()
{
$modelContact = new \models\Contact($this->bdd);
return $modelContact->count();
return $this->model_contact->count();
}
/**
@ -74,8 +77,7 @@ namespace controllers\internals;
*/
public function delete($id)
{
$modelContact = new \models\Contact($this->bdd);
return $modelContact->delete_by_id($id);
return $this->model_contact->delete_by_id($id);
}
/**
@ -90,15 +92,12 @@ namespace controllers\internals;
'name' => $name,
];
$modelContact = new \models\Contact($this->bdd);
$result = $modelContact->insert($contact);
$result = $this->model_contact->insert($contact);
if (!$result) {
return $result;
}
$internalEvent = new \controllers\internals\Event($this->bdd);
$internalEvent->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;
}
@ -109,13 +108,11 @@ namespace controllers\internals;
*/
public function update($id, $number, $name)
{
$modelContact = new \models\Contact($this->bdd);
$contact = [
'number' => $number,
'name' => $name,
];
return $modelContact->update($id, $contact);
return $this->model_contact->update($id, $contact);
}
}

View file

@ -6,6 +6,12 @@
*/
class Event extends \descartes\InternalController
{
private $model_event;
public function __construct(\PDO $bdd)
{
$this->model_event = new \models\Event($bdd);
}
/**
* Cette fonction retourne une liste des events sous forme d'un tableau
@ -17,8 +23,7 @@
public function get_list($nb_entry = false, $page = false)
{
//Recupération des events
$modelEvent = new \models\Event($this->bdd);
return $modelEvent->get_list($nb_entry, $nb_entry * $page);
return $this->model_event->get_list($nb_entry, $nb_entry * $page);
}
/**
@ -28,8 +33,7 @@
*/
public function get_lasts_by_date($nb_entry = false)
{
$modelEvent = new \models\Event($this->bdd);
return $modelEvent->get_lasts_by_date($nb_entry);
return $this->model_event->get_lasts_by_date($nb_entry);
}
/**
@ -39,8 +43,7 @@
*/
public function delete($id)
{
$modelEvent = new \models\Event($this->bdd);
return $modelEvent->delete_by_id($id);
return $this->model_event->delete_by_id($id);
}
/**
@ -50,13 +53,11 @@
*/
public function create($type, $text)
{
$modelEvent = new \models\Event($this->bdd);
$event = [
'type' => $type,
'text' => $text,
];
return $modelEvent->insert($event);
return $this->model_event->insert($event);
}
}

138
controllers/internals/Group.php Executable file
View file

@ -0,0 +1,138 @@
<?php
namespace controllers\internals;
/**
* Classe des groups
*/
class Group extends \descartes\InternalController
{
private $model_group;
private $internal_event;
public function __construct(\PDO $bdd)
{
$this->model_group = new \models\Group($bdd);
$this->internal_event = new \controllers\internals\Event($bdd);
}
/**
* 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
* @return array : La liste des groups
*/
public function get_list($nb_entry = false, $page = false)
{
//Recupération des groups
return $this->model_group->get_list($nb_entry, $nb_entry * $page);
}
/**
* 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)
{
//Recupération des groups
return $this->model_group->get_by_ids($ids);
}
/**
* 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)
{
//Recupération des groups
return $this->model_group->get_by_name($name);
}
/**
* Cette fonction permet de compter le nombre de group
* @return int : Le nombre d'entrées dans la table
*/
public function count()
{
return $this->model_group->count();
}
/**
* 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)
{
return $this->model_group->delete_by_ids($ids);
}
/**
* 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)
{
$group = [
'name' => $name,
];
$id_group = $this->model_group->insert($group);
if (!$id_group) {
return false;
}
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);
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
* @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)
{
$group = [
'name' => $name,
];
$result = $this->model_group->update($id, $group);
$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 ++;
}
}
if (!$result && $nb_contact_insert != count($contacts_ids)) {
return false;
}
return true;
}
/**
* 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)
{
//Recupération des groups
return $this->model_group->get_contact($id);
}
}

View file

@ -1,141 +0,0 @@
<?php
namespace controllers\internals;
/**
* Classe des groupes
*/
class Groupe extends \descartes\InternalController
{
/**
* Cette fonction retourne une liste des groupes 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
* @return array : La liste des groupes
*/
public function get_list($nb_entry = false, $page = false)
{
//Recupération des groupes
$modelGroupe = new \models\Groupe($this->bdd);
return $modelGroupe->get_list($nb_entry, $nb_entry * $page);
}
/**
* Cette fonction retourne une liste des groupes sous forme d'un tableau
* @param array int $ids : Les ids des entrées à retourner
* @return array : La liste des groupes
*/
public function get_by_ids($ids)
{
//Recupération des groupes
$modelGroupe = new \models\Groupe($this->bdd);
return $modelGroupe->get_by_ids($ids);
}
/**
* Cette fonction retourne un groupe par son name
* @param string $name : Le name du groupe
* @return array : Le groupe
*/
public function get_by_name($name)
{
//Recupération des groupes
$modelGroupe = new \models\Groupe($this->bdd);
return $modelGroupe->get_by_name($name);
}
/**
* Cette fonction permet de compter le nombre de groupe
* @return int : Le nombre d'entrées dans la table
*/
public function count()
{
$modelGroupe = new \models\Groupe($this->bdd);
return $modelGroupe->count();
}
/**
* Cette fonction va supprimer une liste de groupe
* @param array $ids : Les id des groupes à supprimer
* @return int : Le nombre de groupes supprimées;
*/
public function delete($ids)
{
$modelGroupe = new \models\Groupe($this->bdd);
return $modelGroupe->delete_by_ids($ids);
}
/**
* Cette fonction insert une nouvelle groupe
* @param array $name : le nom du groupe
* @param array $contacts_ids : Un tableau des ids des contact du groupe
* @return mixed bool|int : false si echec, sinon l'id de la nouvelle groupe insérée
*/
public function create($name, $contacts_ids)
{
$modelGroupe = new \models\Groupe($this->bdd);
$groupe = [
'name' => $name,
];
$id_groupe = $modelGroupe->insert($groupe);
if (!$id_groupe) {
return false;
}
foreach ($contacts_ids as $contact_id) {
$modelGroupe->insert_groupe_contact($id_groupe, $contact_id);
}
$internalEvent = new \controllers\internals\Event($this->bdd);
$internalEvent->create('GROUP_ADD', 'Ajout groupe : ' . $name);
return $id_groupe;
}
/**
* Cette fonction met à jour un groupe
* @param int $id : L'id du groupe à update
* @param string $name : Le nom du groupe à update
* @param string $contacts_ids : Les ids des contact du groupe
* @return bool : True if all update ok, false else
*/
public function update($id, $name, $contacts_ids)
{
$modelGroupe = new \models\Groupe($this->bdd);
$groupe = [
'name' => $name,
];
$result = $modelGroupe->update($id, $groupe);
$modelGroupe->delete_groupe_contact($id);
$nb_contact_insert = 0;
foreach ($contacts_ids as $contact_id) {
if ($modelGroupe->insert_groupe_contact($id, $contact_id)) {
$nb_contact_insert ++;
}
}
if (!$result && $nb_contact_insert != count($contacts_ids)) {
return false;
}
return $true;
}
/**
* Cette fonction retourne les contact pour un groupe
* @param string $id : L'id du groupe
* @return array : Un tableau avec les contact
*/
public function get_contact($id)
{
//Recupération des groupes
$modelGroupe = new \models\Groupe($this->bdd);
return $modelGroupe->get_contact($id);
}
}

View file

@ -6,6 +6,13 @@ namespace controllers\internals;
*/
class Received extends \descartes\InternalController
{
private $model_received;
public function __construct(\PDO $bdd)
{
$this->model_received = new \models\Received($bdd);
}
/**
* Cette fonction retourne une liste des receivedes sous forme d'un tableau
@ -16,8 +23,7 @@ class Received extends \descartes\InternalController
public function get_list($nb_entry = false, $page = false)
{
//Recupération des receivedes
$modelReceived = new \models\Received($this->bdd);
return $modelReceived->get_list($nb_entry, $nb_entry * $page);
return $this->model_received->get_list($nb_entry, $nb_entry * $page);
}
@ -29,8 +35,7 @@ class Received extends \descartes\InternalController
public function get_by_ids($ids)
{
//Recupération des receivedes
$modelReceived = new \models\Received($this->bdd);
return $modelReceived->get_by_ids($ids);
return $this->model_received->get_by_ids($ids);
}
/**
@ -40,8 +45,7 @@ class Received extends \descartes\InternalController
*/
public function get_lasts_by_date($nb_entry = false)
{
$modelReceived = new \models\Received($this->bdd);
return $modelReceived->get_lasts_by_date($nb_entry);
return $this->model_received->get_lasts_by_date($nb_entry);
}
/**
@ -51,31 +55,28 @@ class Received extends \descartes\InternalController
*/
public function get_by_origin($origin)
{
$modelReceived = new \models\Received($this->bdd);
return $modelReceived->get_by_origin($origin);
return $this->model_received->get_by_origin($origin);
}
/**
* 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
* 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)
{
$modelReceived = new \models\Received($this->bdd);
return $modelReceived->get_since_by_date($date, $number);
return $this->model_received->get_since_by_date($date);
}
/**
* 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)
* 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
* @return array : Tableau avec tous les Sms depuis la date
*/
public function get_since_for_number_by_date($date, $number)
{
$modelReceived = new \models\Received($this->bdd);
return $modelReceived->get_since_for_number_by_date($date, $number);
return $this->model_received->get_since_for_number_by_date($date, $number);
}
/**
@ -85,8 +86,7 @@ class Received extends \descartes\InternalController
*/
public function delete($id)
{
$modelReceived = new \models\Received($this->bdd);
return $modelReceived->delete_by_id($id);
return $this->model_received->delete_by_id($id);
}
/**
@ -103,8 +103,7 @@ class Received extends \descartes\InternalController
'is_command' => $is_command,
];
$modelReceived = new \models\Received($this->bdd);
return $modelReceived->create($received);
return $this->model_received->create($received);
}
/**
@ -113,8 +112,6 @@ class Received extends \descartes\InternalController
*/
public function update($id, $at, $origin, $content, $is_command)
{
$modelReceived = new \models\Received($this->bdd);
$received = [
'at' => $at,
'origin' => $origin,
@ -122,7 +119,7 @@ class Received extends \descartes\InternalController
'is_command' => $is_command,
];
return $modelReceived->update($id, $received);
return $this->model_received->update($id, $received);
}
/**
@ -131,8 +128,7 @@ class Received extends \descartes\InternalController
*/
public function count()
{
$modelReceived = new \models\Received($this->bdd);
return $modelReceived->count();
return $this->model_received->count();
}
/**
@ -141,9 +137,7 @@ class Received extends \descartes\InternalController
*/
public function count_by_day_since($date)
{
$modelReceived = new \models\Received($this->bdd);
$counts_by_day = $modelReceived->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) {
@ -159,7 +153,6 @@ class Received extends \descartes\InternalController
*/
public function get_discussions()
{
$modelReceived = new \models\Received($this->bdd);
return $modelReceived->get_discussions();
return $this->model_received->get_discussions();
}
}

View file

@ -6,7 +6,15 @@ namespace controllers\internals;
*/
class Scheduled extends \descartes\InternalController
{
private $model_scheduled;
private $internal_event;
public function __construct(\PDO $bdd)
{
$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
* @param mixed(int|bool) $nb_entry : Le nombre d'entrées à retourner par page
@ -16,8 +24,7 @@ namespace controllers\internals;
public function get_list($nb_entry = false, $page = false)
{
//Recupération des scheduledes
$modelScheduled = new \models\Scheduled($this->bdd);
return $modelScheduled->get_list($nb_entry, $nb_entry * $page);
return $this->model_scheduled->get_list($nb_entry, $nb_entry * $page);
}
/**
@ -28,8 +35,7 @@ namespace controllers\internals;
public function get_by_ids($ids)
{
//Recupération des scheduledes
$modelScheduled = new \models\Scheduled($this->bdd);
return $modelScheduled->get_by_ids($ids);
return $this->model_scheduled->get_by_ids($ids);
}
/**
@ -40,8 +46,7 @@ namespace controllers\internals;
*/
public function get_before_date_for_number($date, $number)
{
$modelScheduled = new \models\Scheduled($this->bdd);
return $modelScheduled->get_before_date_for_number($date, $number);
return $this->model_scheduled->get_before_date_for_number($date, $number);
}
/**
@ -50,8 +55,7 @@ namespace controllers\internals;
*/
public function count()
{
$modelScheduled = new \models\Scheduled($this->bdd);
return $modelScheduled->count();
return $this->model_scheduled->count();
}
/**
@ -61,8 +65,7 @@ namespace controllers\internals;
*/
public function delete($id)
{
$modelScheduled = new \models\Scheduled($this->bdd);
return $modelScheduled->delete_by_id($id);
return $this->model_scheduled->delete_by_id($id);
}
/**
@ -70,30 +73,28 @@ namespace controllers\internals;
* @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 $groupes_ids : Les ids des groupe 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 = [], $groupes_ids = [])
public function create($scheduled, $numbers = [], $contacts_ids = [], $groups_ids = [])
{
$modelScheduled = new \models\Scheduled($this->bdd);
if (!$id_scheduled = $modelScheduled->insert($scheduled)) {
$internalEvent = new \controllers\internals\Event($this->bdd);
$internalEvent->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) {
$modelScheduled->insert_scheduled_number($id_scheduled, $number);
$this->model_scheduled->insert_scheduled_number($id_scheduled, $number);
}
foreach ($contacts_ids as $contact_id) {
$modelScheduled->insert_scheduled_contact($id_scheduled, $contact_id);
$this->model_scheduled->insert_scheduled_contact($id_scheduled, $contact_id);
}
foreach ($groupes_ids as $groupe_id) {
$modelScheduled->insert_scheduled_groupe($id_scheduled, $groupe_id);
foreach ($groups_ids as $group_id) {
$this->model_scheduled->insert_scheduled_group($id_scheduled, $group_id);
}
return $id_scheduled;
@ -101,34 +102,32 @@ 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, groupe_ids
* @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 $groupes_ids : Les ids des groupe 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)
{
$modelScheduled = new \models\Scheduled($this->bdd);
$nb_update = 0;
foreach ($scheduleds as $scheduled) {
$result = $modelScheduled->update($scheduled['scheduled']['id'], $scheduled['scheduled']);
$result = $this->model_scheduled->update($scheduled['scheduled']['id'], $scheduled['scheduled']);
$modelScheduled->delete_scheduled_number($scheduled['scheduled']['id']);
$modelScheduled->delete_scheduled_contact($scheduled['scheduled']['id']);
$modelScheduled->delete_scheduled_groupe($scheduled['scheduled']['id']);
$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) {
$modelScheduled->insert_scheduled_number($scheduled['scheduled']['id'], $number);
$this->model_scheduled->insert_scheduled_number($scheduled['scheduled']['id'], $number);
}
foreach ($scheduled['contact_ids'] as $contact_id) {
$modelScheduled->insert_scheduled_contact($scheduled['scheduled']['id'], $contact_id);
$this->model_scheduled->insert_scheduled_contact($scheduled['scheduled']['id'], $contact_id);
}
foreach ($scheduled['groupe_ids'] as $groupe_id) {
$modelScheduled->insert_scheduled_groupe($scheduled['scheduled']['id'], $groupe_id);
foreach ($scheduled['group_ids'] as $group_id) {
$this->model_scheduled->insert_scheduled_group($scheduled['scheduled']['id'], $group_id);
}
@ -146,8 +145,7 @@ namespace controllers\internals;
public function get_number($id_scheduled)
{
//Recupération des scheduledes
$modelScheduled = new \models\Scheduled($this->bdd);
return $modelScheduled->get_number($id_scheduled);
return $this->model_scheduled->get_number($id_scheduled);
}
/**
@ -158,19 +156,17 @@ namespace controllers\internals;
public function get_contact($id_scheduled)
{
//Recupération des scheduledes
$modelScheduled = new \models\Scheduled($this->bdd);
return $modelScheduled->get_contact($id_scheduled);
return $this->model_scheduled->get_contact($id_scheduled);
}
/**
* Cette fonction retourne une liste de groupe 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 groupe
* @return array : La liste des group
*/
public function get_groupe($id_scheduled)
public function get_group($id_scheduled)
{
//Recupération des scheduledes
$modelScheduled = new \models\Scheduled($this->bdd);
return $modelScheduled->get_groupe($id_scheduled);
return $this->model_scheduled->get_group($id_scheduled);
}
}

View file

@ -6,6 +6,12 @@ namespace controllers\internals;
*/
class Sended extends \descartes\InternalController
{
private $model_sended;
public function __construct(\PDO $bdd)
{
$this->model_sended = new \models\Sended($bdd);
}
/**
* Cette fonction retourne une liste des sendedes sous forme d'un tableau
@ -16,8 +22,7 @@ namespace controllers\internals;
public function get_list($nb_entry = false, $page = false)
{
//Recupération des sendedes
$modelSended = new \models\Sended($this->bdd);
return $modelSended->get_list($nb_entry, $nb_entry * $page);
return $this->model_sended->get_list($nb_entry, $nb_entry * $page);
}
/**
@ -28,8 +33,7 @@ namespace controllers\internals;
public function get_by_ids($ids)
{
//Recupération des sendedes
$modelSended = new \models\Sended($this->bdd);
return $modelSended->get_by_ids($ids);
return $this->model_sended->get_by_ids($ids);
}
/**
@ -39,8 +43,7 @@ namespace controllers\internals;
*/
public function get_lasts_by_date($nb_entry = false)
{
$modelSended = new \models\Sended($this->bdd);
return $modelSended->get_lasts_by_date($nb_entry);
return $this->model_sended->get_lasts_by_date($nb_entry);
}
/**
@ -51,8 +54,7 @@ namespace controllers\internals;
public function get_by_target($target)
{
//Recupération des sendeds
$modelSended = new \models\Sended($this->bdd);
return $modelSended->get_by_target($target);
return $this->model_sended->get_by_target($target);
}
@ -63,8 +65,7 @@ namespace controllers\internals;
*/
public function delete($id)
{
$modelSended = new \models\Sended($this->bdd);
return $modelSended->delete_by_id($id);
return $this->model_sended->delete_by_id($id);
}
/**
@ -74,8 +75,7 @@ namespace controllers\internals;
*/
public function create($sended)
{
$modelSended = new \models\Sended($this->bdd);
return $modelSended->create($sended);
return $this->model_sended->create($sended);
}
/**
@ -84,11 +84,9 @@ namespace controllers\internals;
*/
public function update($sendeds)
{
$modelSended = new \models\Sended($this->bdd);
$nb_update = 0;
foreach ($sendeds as $sended) {
$result = $modelSended->update($sended['id'], $sended);
$result = $this->model_sended->update($sended['id'], $sended);
if ($result) {
$nb_update ++;
@ -104,8 +102,7 @@ namespace controllers\internals;
*/
public function count()
{
$modelSended = new \models\Sended($this->bdd);
return $modelSended->count();
return $this->model_sended->count();
}
/**
@ -114,9 +111,7 @@ namespace controllers\internals;
*/
public function count_by_day_since($date)
{
$modelSended = new \models\Sended($this->bdd);
$counts_by_day = $modelSended->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) {

View file

@ -22,7 +22,7 @@
/**
* Update a setting by his name
*/
public function update(string $name, $value) : boolean
public function update(string $name, $value) : bool
{
return (bool) $this->model_setting->update($name, $value);
}

View file

@ -4,8 +4,15 @@ namespace controllers\internals;
/**
* Classe des smsstopes
*/
class SMSStop extends \descartes\InternalController
class SmsStop extends \descartes\InternalController
{
private $model_sms_stop;
public function __construct(\PDO $bdd)
{
$this->model_sms_stop = new \models\SmsStop($bdd);
}
/**
* 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
@ -15,8 +22,7 @@ namespace controllers\internals;
public function get_list($nb_entry = false, $page = false)
{
//Recupération des smsstopes
$modelSMSStop = new \models\SMSStop($this->bdd);
return $modelSMSStop->get_list($nb_entry, $nb_entry * $page);
return $this->model_sms_stop->get_list($nb_entry, $nb_entry * $page);
}
/**
@ -27,8 +33,7 @@ namespace controllers\internals;
public function get_by_ids($ids)
{
//Recupération des smsstopes
$modelSMSStop = new \models\SMSStop($this->bdd);
return $modelSMSStop->get_by_ids($ids);
return $this->model_sms_stop->get_by_ids($ids);
}
/**
@ -39,8 +44,7 @@ namespace controllers\internals;
public function get_by_number($number)
{
//Recupération des smsstopes
$modelSMSStop = new \models\SMSStop($this->bdd);
return $modelSMSStop->get_by_number($number);
return $this->model_sms_stop->get_by_number($number);
}
@ -50,8 +54,7 @@ namespace controllers\internals;
*/
public function count()
{
$modelSMSStop = new \models\SMSStop($this->bdd);
return $modelSMSStop->count();
return $this->model_sms_stop->count();
}
/**
@ -61,8 +64,7 @@ namespace controllers\internals;
*/
public function delete($id)
{
$modelSMSStop = new \models\SMSStop($this->bdd);
return $modelSMSStop->delete_by_id($id);
return $this->model_sms_stop->delete_by_id($id);
}
/**
@ -72,8 +74,7 @@ namespace controllers\internals;
*/
public function create($smsstop)
{
$modelSMSStop = new \models\SMSStop($this->bdd);
return $modelSMSStop->insert($smsstop);
return $this->model_sms_stop->insert($smsstop);
}
/**
@ -82,11 +83,9 @@ namespace controllers\internals;
*/
public function update($smsstops)
{
$modelSMSStop = new \models\SMSStop($this->bdd);
$nb_update = 0;
foreach ($smsstops as $smsstop) {
$result = $modelSMSStop->update($smsstop['id'], $smsstop);
$result = $this->model_sms_stop->update($smsstop['id'], $smsstop);
if ($result) {
$nb_update ++;

View file

@ -109,7 +109,7 @@
* Cette fonction vérifie si un utilisateur et connecté, et si il ne l'est pas, redirige sur la page de connexion
* @return void
*/
public static function verify_connect()
public static function verifyconnect()
{
if (!isset($_SESSION['connect']) || !$_SESSION['connect']) {
header('Location: /');
@ -136,9 +136,9 @@
* @param array $settings : Les settings du mail, type, sujet, template
* @param array $datas : Les données à fournir au template du mail
*/
public function send_email($to, $settings, $datas = [])
public static function send_email($to, $settings, $datas = [])
{
$controller = new \Controller();
$controller = new \descartes\Controller();
$content = $controller->render($settings['template'], $datas, true);
return true;#mail($to, $settings['subject'], $content);
}

View file

@ -4,6 +4,7 @@
class User extends \descartes\InternalController
{
private $model_user;
private $internal_event;
public function __construct(\PDO $bdd)
{
@ -56,9 +57,9 @@
* Update a user password
* @param string $id : User id
* @param string $password : New password
* @return boolean;
* @return bool;
*/
public function update_password(int $id, string $password) : boolean
public function update_password(int $id, string $password) : bool
{
$password = password_hash($password, PASSWORD_DEFAULT);
return (bool) $this->model_user->update_password($id, $password);
@ -70,7 +71,7 @@
* @param string $transfer : New value of property transfer
* @return boolean;
*/
public function update_transfer(int $id, int $transfer) : boolean
public function update_transfer(int $id, int $transfer) : bool
{
return (bool) $this->model_user->update_transfer($id, $transfer);
}
@ -93,7 +94,7 @@
*/
public function get_by_email($email)
{
return $model_user->get_by_email($email);
return $this->model_user->get_by_email($email);
}
/**
@ -109,7 +110,7 @@
'transfer' => $transfer,
];
return $model_user->update($id, $user);
return $this->model_user->update($id, $user);
}
/**
@ -126,13 +127,13 @@
'transfer' => $transfer,
];
$result = $model_user->insert($user);
$result = $this->model_user->insert($user);
if (!$result) {
return false;
}
$internal_event->create('CONTACT_ADD', 'Ajout de l\'utilisateur : ' . $email . '.');
$this->internal_event->create('CONTACT_ADD', 'Ajout de l\'utilisateur : ' . $email . '.');
return $result;
}

View file

@ -1,113 +0,0 @@
<?php
namespace controllers\internals;
/**
* Classe des commandes
*/
class Command extends \descartes\InternalController
{
public function populate_database ($nb_entry = false, $page = false)
{
global $bdd;
$internalContact = new \controllers\internals\Contact($bdd);
$internalGroupe = new \controllers\internals\Groupe($bdd);
#On insert des contacts & regroupe aléatoirement les ids en groupes
$groupes_contacts_ids = [];
for ($i = 0; $i < 100; $i ++)
{
$contact = [
'name' => 'Contact N°' . $i,
'number' => '06' . rand(10,99) . rand(10,99) . rand(10,99) . rand(10,99),
];
if (!$id_contact = $internalContact->create($contact))
{
continue;
}
$nb_groupe = rand(0,14);
if (!isset($groupes[$nb_groupe]))
{
$groupes_contacts_ids[$nb_groupe] = [];
}
$groupes_contacts_ids[$nb_groupe][] = $id_contact;
}
#On insert les groupes
foreach ($groupes_contacts_ids as $key => $groupe_contacts_ids)
{
$internalGroupe->create(['name' => 'Groupe N°' . $key], $groupe_contacts_ids);
}
}
/**
* 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)
{
//Recupération des commandes
$modelCommand = new \models\Command($this->bdd);
return $modelCommand->get_by_ids($ids);
}
/**
* Cette fonction permet de compter le nombre de scheduleds
* @return int : Le nombre d'entrées dans la table
*/
public function count ()
{
$modelCommand = new \models\Command($this->bdd);
return $modelCommand->count();
}
/**
* Cette fonction va supprimer une liste de commands
* @param array $ids : Les id des commandes à supprimer
* @return int : Le nombre de commandes supprimées;
*/
public function delete ($ids)
{
$modelCommand = new \models\Command($this->bdd);
return $modelCommand->delete_by_ids($ids);
}
/**
* Cette fonction insert une nouvelle commande
* @param array $command : La commande à insérer
* @return mixed bool|int : false si echec, sinon l'id de la nouvelle commande insérée
*/
public function create ($command)
{
$modelCommand = new \models\Command($this->bdd);
return $modelCommand->insert($command);
}
/**
* Cette fonction met à jour une série de commandes
* @return int : le nombre de ligne modifiées
*/
public function update ($commands)
{
$modelCommand = new \models\Command($this->bdd);
$nb_update = 0;
foreach ($commands as $command)
{
$result = $modelCommand->update($command['id'], $command);
if ($result)
{
$nb_update ++;
}
}
return $nb_update;
}
}