mirror of
https://github.com/RaspbianFrance/raspisms.git
synced 2025-04-21 08:56:27 +02:00
Ajout des mecanismes d'enqueue pour les webhooks
This commit is contained in:
parent
7c78832fe1
commit
9f5e143356
3 changed files with 57 additions and 3 deletions
|
@ -179,6 +179,15 @@
|
||||||
//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 &';
|
$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
|
||||||
|
|
||||||
|
$datas = array(
|
||||||
|
'number' => $number,
|
||||||
|
'text' => $scheduled['content'],
|
||||||
|
'flash' => $scheduled['flash'],
|
||||||
|
);
|
||||||
|
|
||||||
|
$webhooks = new webhooks();
|
||||||
|
$webhooks->_addWebhooksForType(internalConstants::WEBHOOK_TYPE['SEND_SMS'], $datas);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -348,13 +357,24 @@
|
||||||
$send_by = $number;
|
$send_by = $number;
|
||||||
$content = $text;
|
$content = $text;
|
||||||
$is_command = count($found_commands);
|
$is_command = count($found_commands);
|
||||||
if (!$db->insertIntoTable('receiveds', ['at' => $date, 'send_by' => $send_by, 'content' => $content, 'is_command' => $is_command]))
|
|
||||||
|
$received = array(
|
||||||
|
'at' => $date,
|
||||||
|
'send_by' => $send_by,
|
||||||
|
'content' => $content,
|
||||||
|
'is_command' => $is_command,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!$db->insertIntoTable('receiveds', $received))
|
||||||
{
|
{
|
||||||
echo "Erreur lors de l'enregistrement du SMS\n";
|
echo "Erreur lors de l'enregistrement du SMS\n";
|
||||||
$this->wlog('Unable to process the SMS in file "' . $dir);
|
$this->wlog('Unable to process the SMS in file "' . $dir);
|
||||||
die(7);
|
die(7);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$webhooks = new webhooks();
|
||||||
|
$webhooks->_addWebhooksForType(internalConstants::WEBHOOK_TYPE['RECEIVE_SMS'], $received);
|
||||||
|
|
||||||
//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]);
|
$db->insertIntoTable('transfers', ['id_received' => $db->lastId(), 'progress' => false]);
|
||||||
|
|
||||||
|
|
|
@ -145,14 +145,39 @@
|
||||||
header('Location: ' . $this->generateUrl('webhooks'));
|
header('Location: ' . $this->generateUrl('webhooks'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cette méthode permet d'ajouter d'un coup toutes les requête d'un webhook à la queue des requête pour un type de webhook
|
||||||
|
* @param int $webhookType : Le type de webhook (une constante issue de internalConstants::WEBHOOK_TYPE)
|
||||||
|
* @param array $datas : Les données à envoyer avec la requête (si non définie, [])
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function _addWebhooksForType ($webhookType, $datas = [])
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$webhooks = $db->getFromTableWhere('webhooks', ['type' => $webhookType]);
|
||||||
|
|
||||||
|
foreach ($webhooks as $webhook)
|
||||||
|
{
|
||||||
|
$this->addWebhookQuery($webhook['url'], $datas);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cette méthode est appelée pour ajouter une requête issue d'un webhook à la queue
|
* Cette méthode est appelée pour ajouter une requête issue d'un webhook à la queue
|
||||||
* @param string $url : L'url à laquelle envoyer la requête
|
* @param string $url : L'url à laquelle envoyer la requête
|
||||||
* @param array $datas : Les données à envoyer avec la requête (si non définie, [])
|
* @param array $datas : Les données à envoyer avec la requête (si non définie, [])
|
||||||
* @return boolean : true si on reussi à l'ajouter, false sinon
|
* @return boolean : true si on reussi à l'ajouter, false sinon
|
||||||
*/
|
*/
|
||||||
public function _enqueueQuery ($url, $datas = [])
|
private function addWebhookQuery ($url, $datas = [])
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
if (!$db->insertIntoTable('webhook_queries', ['url' => $url, ['datas' => json_encode($datas)]]))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,6 +156,15 @@ CREATE TABLE IF NOT EXISTS webhooks
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS webhook_queries
|
||||||
|
(
|
||||||
|
id INT NOT NULL AUTO_INCREMENT,
|
||||||
|
url VARCHAR(250) NOT NULL,
|
||||||
|
datas VARCHAR(10000) NOT NULL,
|
||||||
|
progress BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
|
||||||
#On insert les données par défaut dans les settings
|
#On insert les données par défaut dans les settings
|
||||||
INSERT INTO settings (name, value)
|
INSERT INTO settings (name, value)
|
||||||
VALUES ('transfer', '1'),
|
VALUES ('transfer', '1'),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue