From 3f8f39989e93ae7b8f5e7c350d4dd38815ad79a8 Mon Sep 17 00:00:00 2001 From: OsaAjani Date: Thu, 21 Jan 2016 14:05:38 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20du=20syst=C3=A8me=20d'envoie=20des=20re?= =?UTF-8?q?qu=C3=AAtes=20Webhook=5Fqueries?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/internalConsole.php | 34 +++++++++++++++++++++++++++++++++ model/DataBase.php | 25 ++++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/controllers/internalConsole.php b/controllers/internalConsole.php index 35e7864..7cc023f 100755 --- a/controllers/internalConsole.php +++ b/controllers/internalConsole.php @@ -436,4 +436,38 @@ $db->deleteTransfersIn($ids_transfers); } + + /** + * Cette fonction permet d'envoyer toutes les requêtes des Webhook_queries + */ + public function sendWebhookQueries () + { + global $db; + + $webhookQueries = $db->getFromTableWhere('webhook_queries', ['progress' => false]); + $webhookQueriesIds = []; + foreach ($webhookQueries as $webhookQuerie) + { + $webhookQueriesIds[] = $webhookQuerie['id']; + } + + $db->updateProgressWebhookQueries($webhookQueriesIds, true); + + foreach ($webhookQueries as $webhookQuerie) + { + //On remap les datas + $datas = json_decode($webhookQuerie['datas'], true); + $datas = http_build_query($datas); + + //On fait la requete + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, $webhookQuerie['url']); + curl_setopt($curl, CURLOPT_POST, 1); + curl_setopt($curl, CURLOPT_POSTFIELDS, $datas); + curl_exec($curl); + curl_close($curl); //On ferme CURL + + echo "Query do to " . $webhookQuerie['url'] . " with datas " . $datas . "\n"; + } + } } diff --git a/model/DataBase.php b/model/DataBase.php index 3ba87e9..69806ab 100755 --- a/model/DataBase.php +++ b/model/DataBase.php @@ -602,6 +602,31 @@ return $this->runQuery($query, $params); } + /***************************************/ + /* PARTIE DES REQUETES WEBHOOK_QUERIES */ + /***************************************/ + + /** + * Change le statut des webhook_queries dont l'id est fourni dans $webhookQueriesId + * @param array $webhookQueriesId = Tableau des id des webhook_queries voulus + * @return int : Retourne le nombre de lignes mises à jour + */ + public function updateWebhookQueriesIn($webhookQueriesId, $progress) + { + $query = " + UPDATE webhook_queries + SET progress = :progress + WHERE id "; + + //On génère la clause IN et les paramètres adaptés depuis le tableau des id + $generted_in = $this->generateInFromArray($webhookQueriesId); + $query .= $generted_in['QUERY']; + $params = $generted_in['PARAMS']; + $params['progress'] = (boolean)$progress; + + return $this->runQuery($query, $params, self::ROWCOUNT); + } + /** * Supprime tous les webhooks dont l'id fait partie du tableau fourni * @param $webhooks_ids : Tableau des id des webhooks à supprimer