performDataTranslationRequest method

Future<Map<String, String>> performDataTranslationRequest(
  1. Map<String, String> data,
  2. String sourceLang,
  3. String targetLang,
  4. List<String> ignoreWords,
)

Implementation

Future<Map<String, String>> performDataTranslationRequest(
    Map<String, String> data,
    String sourceLang,
    String targetLang,
    List<String> ignoreWords) async {
  final apiUrl = Uri.parse('$baseUrl/json');

  var response = await http.post(apiUrl,
      headers: _getJsonRequestHeader(sourceLang, targetLang, ignoreWords),
      body: jsonEncode(data));
  if (response.statusCode != 202) {
    var errorResponseMap = jsonDecode(response.body) as Map<String, dynamic>;

    throw Exception(
        'Failed to translate data: ErrorCode: ${errorResponseMap['errorCode']}, ErrorMessage: ${errorResponseMap['message']}');
  }

  var responseMap = jsonDecode(response.body) as Map<String, dynamic>;
  var result = responseMap['data'] as Map<String, dynamic>;

  // convert to Map<String, String>
  var stringMap = <String, String>{};
  result.forEach((key, value) {
    stringMap[key] = value as String;
  });
  return stringMap;
}