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

97 lines
4.5 KiB
PHP
Executable File

<?php
/**
* WEVAL MIND WEVAL API - Accès aux données pour l'assistant IA
*/
header('Content-Type: application/json');
try {
$pdo = new PDO("pgsql:host=localhost;dbname=adx_system", "admin", "admin123");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$action = $_GET['action'] ?? $_POST['action'] ?? '';
$result = ['success' => true];
switch ($action) {
// ========== PMTA / MTA ==========
case 'mta_servers':
$stmt = $pdo->query("SELECT id, name, main_ip, status, provider_name, is_installed, dkim_installed, ssh_connectivity_status, expiration_date FROM admin.mta_servers ORDER BY id DESC");
$result['data'] = $stmt->fetchAll(PDO::FETCH_ASSOC);
$result['count'] = count($result['data']);
break;
case 'mta_status':
$stmt = $pdo->query("SELECT status, COUNT(*) as count FROM admin.mta_servers GROUP BY status");
$result['data'] = $stmt->fetchAll(PDO::FETCH_ASSOC);
break;
case 'vmtas':
$serverId = $_GET['server_id'] ?? null;
$sql = "SELECT * FROM admin.servers_vmtas";
if ($serverId) $sql .= " WHERE server_id = " . intval($serverId);
$sql .= " LIMIT 50";
$stmt = $pdo->query($sql);
$result['data'] = $stmt->fetchAll(PDO::FETCH_ASSOC);
break;
// ========== OFFICE 365 ==========
case 'office_accounts':
$limit = intval($_GET['limit'] ?? 20);
$stmt = $pdo->query("SELECT id, email, status, created_at FROM admin.office_accounts ORDER BY id DESC LIMIT $limit");
$result['data'] = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt2 = $pdo->query("SELECT COUNT(*) FROM admin.office_accounts");
$result['total'] = $stmt2->fetchColumn();
break;
case 'office_stats':
$stmt = $pdo->query("SELECT status, COUNT(*) as count FROM admin.office_accounts GROUP BY status");
$result['data'] = $stmt->fetchAll(PDO::FETCH_ASSOC);
break;
case 'office_domains':
$stmt = $pdo->query("SELECT * FROM admin.office_domains ORDER BY id DESC LIMIT 50");
$result['data'] = $stmt->fetchAll(PDO::FETCH_ASSOC);
break;
// ========== WARMUP ==========
case 'warmup_status':
$stmt = $pdo->query("SELECT * FROM admin.email_warmup ORDER BY id DESC LIMIT 20");
$result['data'] = $stmt->fetchAll(PDO::FETCH_ASSOC);
break;
// ========== TRACKING ==========
case 'tracking_stats':
$result['tracking_server'] = ['ip' => '151.80.235.110', 'provider' => 'OVH', 'status' => 'active'];
try {
$stmt = $pdo->query("SELECT COUNT(*) as total FROM admin.tracking_clicks WHERE created_at > NOW() - INTERVAL '24 hours'");
$result['clicks_24h'] = $stmt->fetchColumn();
} catch (Exception $e) { $result['clicks_24h'] = 'N/A'; }
try {
$stmt2 = $pdo->query("SELECT COUNT(*) as total FROM admin.tracking_opens WHERE created_at > NOW() - INTERVAL '24 hours'");
$result['opens_24h'] = $stmt2->fetchColumn();
} catch (Exception $e) { $result['opens_24h'] = 'N/A'; }
break;
// ========== RÉSUMÉ GLOBAL ==========
case 'dashboard':
$result['mta_servers'] = $pdo->query("SELECT COUNT(*) FROM admin.mta_servers")->fetchColumn();
$result['mta_active'] = $pdo->query("SELECT COUNT(*) FROM admin.mta_servers WHERE status='Activated'")->fetchColumn();
$result['office_accounts'] = $pdo->query("SELECT COUNT(*) FROM admin.office_accounts")->fetchColumn();
$result['office_domains'] = $pdo->query("SELECT COUNT(*) FROM admin.office_domains")->fetchColumn();
$result['kb_entries'] = $pdo->query("SELECT COUNT(*) FROM admin.commonia_knowledge")->fetchColumn();
break;
default:
$result = ['success' => false, 'error' => 'Action non reconnue', 'actions' => [
'mta_servers', 'mta_status', 'vmtas',
'office_accounts', 'office_stats', 'office_domains',
'warmup_status', 'tracking_stats', 'dashboard'
]];
}
echo json_encode($result, JSON_PRETTY_PRINT);
} catch (Exception $e) {
echo json_encode(['success' => false, 'error' => $e->getMessage()]);
}