uploadFilesOCR method

Future<APIResponse> uploadFilesOCR(
  1. String? url,
  2. Map<String, dynamic>? bodyMap,
  3. Map<String, String>? headers,
  4. Map<String, String>? mapping,
)

Implementation

Future<APIResponse<dynamic>> uploadFilesOCR(
  String? url,
  Map<String, dynamic>? bodyMap,
  Map<String, String>? headers,
  Map<String, String>? mapping,
) async {
  final isInterNet = await check();
  if (!isInterNet) {
    return APIResponse<dynamic>(
        code: "-111", message: "Bạn đang không bật mạng", value: null);
  } else {
    var uri = Uri.parse(url ?? "");
    var request = http.MultipartRequest(
      "POST",
      uri,
    );
    if (headers != null) {
      request.headers.addAll(headers);
    }
    if (bodyMap != null) {
      var keys = bodyMap.keys;
      for (var i = 0; i < bodyMap.length; i++) {
        var key = keys.elementAt(i);
        request.fields[key] = bodyMap[key]!;
      }
    }

    if (mapping != null) {
      for (var key in mapping.keys) {
        String imageFileURL = mapping[key]!;
        var multFile = await http.MultipartFile.fromPath(key, imageFileURL,
            filename: "$key.jpg", contentType: MediaType.parse("image/jpg"));
        request.files.add(multFile);
      }
    }

    var response = await request.send();
    var responseData = await response.stream.toBytes();
    var responseString = String.fromCharCodes(responseData);
    //Get the response from the server
    var jsonBody = jsonDecode(responseString);

    return APIResponse<dynamic>(
        value: jsonBody,
        code: response.statusCode == 200 ? "000" : "-1",
        message: responseString);
  }
}