sendMessage static method
Future<TPMessage?>
sendMessage(
- TPChannel tpChannel,
- String text,
- String type,
- List<String>? mentions,
- String? parentMessageId,
- Map<String, dynamic>? metaData, {
- String fileUrl = "",
- List<String>? translationLanguages,
- dynamic errorCallback(
- int? errorCode,
- 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;
}