38 lines
1.4 KiB
PHP
38 lines
1.4 KiB
PHP
<?php
|
|
require_once '../config/config.php';
|
|
header('Content-Type: application/json; charset=utf-8');
|
|
requireAuthentication();
|
|
|
|
try {
|
|
$input = json_decode(file_get_contents('php://input'), true) ?: $_POST;
|
|
$userId = isset($input['user_id']) ? intval($input['user_id']) : 0;
|
|
if (!$userId) {
|
|
http_response_code(400);
|
|
echo json_encode(['success' => false, 'error' => 'user_id required']);
|
|
exit;
|
|
}
|
|
|
|
$db = Database::getInstance();
|
|
$user = $db->fetch('SELECT phone_number FROM users WHERE id = :id', ['id' => $userId]);
|
|
if (!$user) {
|
|
http_response_code(404);
|
|
echo json_encode(['success' => false, 'error' => 'User not found']);
|
|
exit;
|
|
}
|
|
|
|
// Use BotService to release hold (sends notification and clears flags)
|
|
try {
|
|
require_once __DIR__ . '/../services/BotService.php';
|
|
$bot = new BotService();
|
|
$bot->releaseHold($user['phone_number']);
|
|
echo json_encode(['success' => true]);
|
|
} catch (Exception $e) {
|
|
// Fallback to direct DB update if BotService fails
|
|
$db->update('users', ['on_hold' => 0, 'advisor_requested' => 0, 'bot_paused_until' => null], 'id = :id', ['id' => $userId]);
|
|
echo json_encode(['success' => true, 'warning' => 'BotService failed, flags cleared directly']);
|
|
}
|
|
} catch (Exception $e) {
|
|
http_response_code(500);
|
|
echo json_encode(['success' => false, 'error' => $e->getMessage()]);
|
|
}
|