You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

20 lines
1.7 KiB

<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(204); exit; }
require_once __DIR__ . '/../../utils/Database.php';
require_once __DIR__ . '/../../utils/Helper.php';
$db = Database::getInstance();
$username = isset($_GET['username']) ? trim($_GET['username']) : '';
if ($username === '') { http_response_code(400); echo json_encode(['success' => false, 'message' => 'invalid']); exit; }
$emailRow = $db->fetchOne("SELECT email FROM user WHERE username = ? AND is_deleted = 0", [$username]);
$emailAddr = $emailRow ? $emailRow['email'] : ($username . '@test.com');
$inbox = $db->fetchOne("SELECT COUNT(*) AS cnt FROM email WHERE rcpt_to = ? AND folder = 'inbox' AND is_deleted = 0", [$username]);
$sent = $db->fetchOne("SELECT COUNT(*) AS cnt FROM email WHERE rcpt_to = ? AND folder = 'sent' AND is_deleted = 0", [$username]);
$draft = $db->fetchOne("SELECT COUNT(*) AS cnt FROM email WHERE rcpt_to = ? AND folder = 'draft' AND is_deleted = 0", [$username]);
$trash = $db->fetchOne("SELECT COUNT(*) AS cnt FROM email WHERE rcpt_to = ? AND folder = 'trash' AND is_deleted = 0", [$username]);
$unread = $db->fetchOne("SELECT COUNT(*) AS cnt FROM email WHERE rcpt_to = ? AND is_read = 0 AND is_deleted = 0", [$username]);
echo json_encode(['success' => true, 'data' => ['email' => $emailAddr, 'stats' => ['inbox' => (int)$inbox['cnt'], 'sent' => (int)$sent['cnt'], 'draft' => (int)$draft['cnt'], 'trash' => (int)$trash['cnt'], 'unread' => (int)$unread['cnt']], 'customFolders' => []]]);