sendToTelegram static method

Future<void> sendToTelegram(
  1. String botToken,
  2. String chatId,
  3. LogModel? logModel,
  4. bool isStackTraceShow,
)

Implementation

static Future<void> sendToTelegram(String botToken, String chatId,
    LogModel? logModel, bool isStackTraceShow) async {
  final url = 'https://api.telegram.org/bot$botToken/sendMessage';

  final payload = {
    'chat_id': chatId,
    'text': _createPayload(logModel, isStackTraceShow),
    'parse_mode': 'MarkdownV2',
  };

  try {
    final response = await HttpClient()
        .postUrl(Uri.parse(url))
        .then((HttpClientRequest request) {
      request.headers.set(HttpHeaders.contentTypeHeader, 'application/json');
      request.write(jsonEncode(payload));
      return request.close();
    });

    final responseBody = await response.transform(utf8.decoder).join();
    final jsonResponse = jsonDecode(responseBody);

    if (jsonResponse['ok'] == true) {
      _printSuccess('Message sent to Telegram successfully.');
    } else {
      _printError(
          'Failed to send message to Telegram: ${jsonResponse['description']}');
    }
  } catch (e) {
    _printError('Error sending message to Telegram: $e');
  }
}