Improve error handling for Fast API calls in Telegram bot

This commit is contained in:
mwpn
2026-01-26 10:09:25 +07:00
parent b08291db84
commit 67f947a7e1

View File

@@ -190,12 +190,42 @@ class TelegramBotController
TelegramHelper::log("FAST API RESPONSE (HTTP $httpCode): $apiResponse"); TelegramHelper::log("FAST API RESPONSE (HTTP $httpCode): $apiResponse");
// Check for cURL errors
if ($apiResponse === false || $httpCode != 200) {
$errorMsg = curl_error($ch) ?? "HTTP Error $httpCode";
TelegramHelper::log("FAST API ERROR: $errorMsg");
TelegramHelper::sendMenu($chatId,
"Terjadi kesalahan saat menghubungi server.\nHTTP Code: $httpCode\nSilakan coba lagi nanti."
);
return;
}
$res = json_decode($apiResponse, true); $res = json_decode($apiResponse, true);
// Safety check if response failed // Safety check if response failed
if (!$res || !isset($res["data"])) { if (!$res) {
TelegramHelper::log("FAST API ERROR: Invalid JSON response");
TelegramHelper::sendMenu($chatId, TelegramHelper::sendMenu($chatId,
"Terjadi kesalahan saat menghubungi server.\nSilakan coba lagi nanti." "Terjadi kesalahan saat menghubungi server.\nResponse tidak valid.\nSilakan coba lagi nanti."
);
return;
}
// Check if response has error status
if (isset($res["status"]) && $res["status"] === "error") {
$errorMsg = $res["message"] ?? "Unknown error";
TelegramHelper::log("FAST API ERROR: " . $errorMsg);
TelegramHelper::sendMenu($chatId,
"Terjadi kesalahan saat menghubungi server.\nError: $errorMsg\nSilakan coba lagi nanti."
);
return;
}
// Check if data exists
if (!isset($res["data"])) {
TelegramHelper::log("FAST API ERROR: No data in response. Full response: " . json_encode($res));
TelegramHelper::sendMenu($chatId,
"Terjadi kesalahan saat menghubungi server.\nData tidak ditemukan.\nSilakan coba lagi nanti."
); );
return; return;
} }