49 lines
2.2 KiB
PHP
49 lines
2.2 KiB
PHP
<?php
|
|
require_once 'auth/session.php';
|
|
header('Content-Type: application/json');
|
|
|
|
// Detailed log
|
|
$log = [
|
|
'date' => date('Y-m-d H:i:s'),
|
|
'method' => $_SERVER['REQUEST_METHOD'],
|
|
'post' => $_POST,
|
|
'session' => $_SESSION
|
|
];
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$user = getCurrentUser();
|
|
if (!$user) {
|
|
$log['error'] = 'Unauthorized';
|
|
file_put_contents('requests.log', json_encode($log) . "\n", FILE_APPEND);
|
|
echo json_encode(['success' => false, 'error' => 'Unauthorized']);
|
|
exit;
|
|
}
|
|
|
|
$log['user_id'] = $user['id'];
|
|
|
|
$display_name = !empty($_POST['display_name']) ? $_POST['display_name'] : $user['display_name'];
|
|
$avatar_url = isset($_POST['avatar_url']) ? $_POST['avatar_url'] : $user['avatar_url'];
|
|
$dnd_mode = isset($_POST['dnd_mode']) ? (int)$_POST['dnd_mode'] : 0;
|
|
$sound_notifications = isset($_POST['sound_notifications']) ? (int)$_POST['sound_notifications'] : 0;
|
|
$theme = !empty($_POST['theme']) ? $_POST['theme'] : $user['theme'];
|
|
$voice_mode = !empty($_POST['voice_mode']) ? $_POST['voice_mode'] : ($user['voice_mode'] ?? 'vox');
|
|
$voice_ptt_key = !empty($_POST['voice_ptt_key']) ? $_POST['voice_ptt_key'] : ($user['voice_ptt_key'] ?? 'v');
|
|
$voice_vox_threshold = isset($_POST['voice_vox_threshold']) ? (float)$_POST['voice_vox_threshold'] : ($user['voice_vox_threshold'] ?? 0.1);
|
|
|
|
try {
|
|
$stmt = db()->prepare("UPDATE users SET display_name = ?, avatar_url = ?, dnd_mode = ?, sound_notifications = ?, theme = ?, voice_mode = ?, voice_ptt_key = ?, voice_vox_threshold = ? WHERE id = ?");
|
|
$success = $stmt->execute([$display_name, $avatar_url, $dnd_mode, $sound_notifications, $theme, $voice_mode, $voice_ptt_key, $voice_vox_threshold, $user['id']]);
|
|
|
|
$log['db_success'] = $success;
|
|
file_put_contents('requests.log', json_encode($log) . "\n", FILE_APPEND);
|
|
echo json_encode(['success' => true]);
|
|
} catch (Exception $e) {
|
|
$log['db_error'] = $e->getMessage();
|
|
file_put_contents('requests.log', json_encode($log) . "\n", FILE_APPEND);
|
|
echo json_encode(['success' => false, 'error' => $e->getMessage()]);
|
|
}
|
|
exit;
|
|
}
|
|
|
|
echo json_encode(['success' => false, 'error' => 'Invalid request']);
|