mirror of
https://github.com/RaspbianFrance/raspisms.git
synced 2025-04-21 00:46: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
|
||||
$commande = '(' . $commande_send_sms . ') >/dev/null 2>/dev/null &';
|
||||
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;
|
||||
$content = $text;
|
||||
$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";
|
||||
$this->wlog('Unable to process the SMS in file "' . $dir);
|
||||
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
|
||||
$db->insertIntoTable('transfers', ['id_received' => $db->lastId(), 'progress' => false]);
|
||||
|
||||
|
|
|
@ -145,14 +145,39 @@
|
|||
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
|
||||
* @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, [])
|
||||
* @return boolean : true si on reussi à l'ajouter, false sinon
|
||||
*/
|
||||
public function _enqueueQuery ($url, $datas = [])
|
||||
private function addWebhookQuery ($url, $datas = [])
|
||||
{
|
||||
return false;
|
||||
global $db;
|
||||
|
||||
if (!$db->insertIntoTable('webhook_queries', ['url' => $url, ['datas' => json_encode($datas)]]))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -156,6 +156,15 @@ CREATE TABLE IF NOT EXISTS webhooks
|
|||
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
|
||||
INSERT INTO settings (name, value)
|
||||
VALUES ('transfer', '1'),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue