Improve error handling for Fast API calls in Telegram bot
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user