diff --git a/src/Controllers/TelegramBotController.php b/src/Controllers/TelegramBotController.php index 641f08e..76b0c5c 100644 --- a/src/Controllers/TelegramBotController.php +++ b/src/Controllers/TelegramBotController.php @@ -190,12 +190,42 @@ class TelegramBotController 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); // Safety check if response failed - if (!$res || !isset($res["data"])) { + if (!$res) { + TelegramHelper::log("FAST API ERROR: Invalid JSON response"); 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; }