97 lines
4.5 KiB
PHP
Executable File
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()]);
|
|
}
|
|
|