callCreateFile method
Implementation
Future<Res> callCreateFile(
String endpoint, {
required String attr,
required String name,
required http.ByteStream stream,
required int size,
required String type,
required int lastModified,
}) async {
final completer = Completer<Res>();
final uri = Uri.parse('${_config!.api}/$endpoint');
final request = http.MultipartRequest('POST', uri);
if (cacheSession?['_id'] != null) {
request.headers['X-Auth-Bearer'] = cacheSession!['_id'];
}
if (cacheSession?['token'] != null) {
request.headers['X-Auth-Token'] = cacheSession!['token'];
}
if (_config?.appId != null) {
request.headers['X-Auth-App'] = _config!.appId;
}
request.fields['attr'] = attr;
request.fields['lastModified'] = lastModified.toString();
request.fields['type'] = type;
request.fields['name'] = name;
request.fields['size'] = size.toString();
final multipartFile = http.MultipartFile(
'content',
stream,
size,
filename: name,
);
request.files.add(multipartFile);
request.send().then((streamResponse) async {
final response = await http.Response.fromStream(streamResponse);
final res = _formatRes(response);
if (res['status'] != 200) {
completer.completeError(res);
return;
}
res['args']['docs'][0]['file'] = {
'name': name,
'lastModified': lastModified,
'type': type,
'size': size,
'ref': res['args']['docs'][0]['_id'],
};
completer.complete(res);
});
return completer.future;
}