Files
wevads-platform/scripts/hamid-webhook.php
2026-02-26 04:53:11 +01:00

58 lines
2.0 KiB
PHP
Executable File

<?php
header('Content-Type: application/json');
$pdo = new PDO('pgsql:host=localhost;dbname=adx_system', 'admin', 'admin123');
// Créer table webhooks si nécessaire
$pdo->exec("CREATE TABLE IF NOT EXISTS hamid_webhooks (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
url TEXT,
event_type VARCHAR(50),
active BOOLEAN DEFAULT true,
created_at TIMESTAMP DEFAULT NOW()
)");
$action = $_POST['action'] ?? $_GET['action'] ?? '';
switch ($action) {
case 'register':
$stmt = $pdo->prepare("INSERT INTO hamid_webhooks (name, url, event_type) VALUES (?, ?, ?)");
$stmt->execute([$_POST['name'], $_POST['url'], $_POST['event_type'] ?? 'message']);
echo json_encode(['success' => true, 'id' => $pdo->lastInsertId()]);
break;
case 'trigger':
$event = $_POST['event_type'] ?? 'message';
$payload = $_POST['payload'] ?? '{}';
$webhooks = $pdo->query("SELECT * FROM hamid_webhooks WHERE event_type='$event' AND active=true")->fetchAll(PDO::FETCH_ASSOC);
$results = [];
foreach ($webhooks as $wh) {
$ch = curl_init($wh['url']);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 5
]);
$resp = curl_exec($ch);
$results[] = ['name' => $wh['name'], 'status' => curl_getinfo($ch, CURLINFO_HTTP_CODE)];
curl_close($ch);
}
echo json_encode(['success' => true, 'triggered' => count($results), 'results' => $results]);
break;
case 'list':
$webhooks = $pdo->query("SELECT * FROM hamid_webhooks")->fetchAll(PDO::FETCH_ASSOC);
echo json_encode(['webhooks' => $webhooks]);
break;
default:
echo json_encode(['actions' => ['register', 'trigger', 'list']]);
}