translateMessage static method

Future<TPMessage?> translateMessage(
  1. TPChannel tpChannel,
  2. TPMessage tpMessage,
  3. List<String>? targetLanguages, {
  4. dynamic errorCallback(
    1. int? errorCode,
    2. String? errorMessage
    )?,
})

Implementation

static Future<TPMessage?> translateMessage(
    TPChannel tpChannel,
    TPMessage tpMessage,
    List<String>? targetLanguages,
    {
      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({});
  if((targetLanguages == null ? 0 : targetLanguages.length) > 0) {
    body['targetLanguages'] = targetLanguages;
  }

  try {
    String url = "/channels/${tpChannel.getChannelId()}/messages/${tpMessage.getMessageId()}/translate";
    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;
}