sendMessage static method

Future<TPMessage?> sendMessage(
  1. TPChannel tpChannel,
  2. String text,
  3. String type,
  4. List<String>? mentions,
  5. String? parentMessageId,
  6. Map<String, dynamic>? metaData, {
  7. String fileUrl = "",
  8. List<String>? translationLanguages,
  9. dynamic errorCallback(
    1. int? errorCode,
    2. String? errorMessage
    )?,
})

Implementation

static Future<TPMessage?> sendMessage(
    TPChannel tpChannel,
    String text,
    String type,
    List<String>? mentions,
    String? parentMessageId,
    Map<String, dynamic>? metaData,
    {
      String fileUrl = "",
      List<String>? translationLanguages,
      Function(int? errorCode, String? errorMessage)? errorCallback
    }) async
{
  if (!_isInitialized(errorCallback: errorCallback)) { return null; }
  if (!_checkAuthInfo(errorCallback: errorCallback)) { return null; }

  Map<String, dynamic> body = Map.from({"text": text, "type": type});
  // parentMessageId
  if((parentMessageId == null ? 0 : parentMessageId.length) > 0) {
    body['parentMessageId'] = parentMessageId;
  }
  // mentions
  if((mentions == null ? 0 : mentions.length) > 0) {
    body['mentions'] = mentions;
  }
  // metaData
  if((metaData == null ? 0 : metaData.length) > 0) {
    body["data"] = metaData;
  }
  // fileUrl
  if(fileUrl.isNotEmpty) {
    body["fileUrl"] = fileUrl;
  }
  // translationTargetLanguages
  if((translationLanguages == null ? 0 : translationLanguages.length) > 0) {
    body['translationTargetLanguages'] = translationLanguages;
  }

  try {
    String url = "/channels/${tpChannel.getChannelId()}/messages/send";
    Map<String, dynamic> response = await HttpUtil.postJson(url, body);
    Map<String, dynamic> message = response["message"];
    return TPMessage(message);
  } on TPException catch(e) {
    Logger.log("$e");
    if(errorCallback != null) { errorCallback(e.getCode(), e.getMessage()); }
  } catch(e){
    Logger.log("$e");
    if(errorCallback != null) { errorCallback(-1, e.toString()); }
  }
  return null;
}