Files
whatsapp/api/release_hold.php
2026-01-25 23:05:45 -05:00

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()]);
}