multipartApi<T> method
Implementation
Future<T> multipartApi<T>(
Uri uri,
Map<String, String> fields,
String filePath,
T Function(dynamic value) mapperFunction, {
Map<String, String>? headers,
}) async {
try {
if (!await connectivity.isConnected()) {
throw AppException(description: L10nConstants.defaultError);
}
headers = getHeaders(headers ?? {});
var multipart = http.MultipartRequest('POST', uri);
multipart.headers.addAll(headers);
multipart.fields.addAll(fields);
multipart.files.add(await http.MultipartFile.fromPath('file', filePath));
var response = await multipart.send();
return await _manageStreamedResponse(response, mapperFunction);
} on AppException catch (e) {
log(e.toString(), name: 'error');
rethrow;
} on ApiException catch (e) {
log(e.toString(), name: 'error');
rethrow;
} catch (ex) {
log(ex.toString(), name: 'responseError', error: ex);
throw AppException(description: L10nConstants.defaultError);
}
}