postAPIOfTraceability method
Future<BaseResponse>
postAPIOfTraceability(
- String url,
- String method,
- dynamic data, {
- bool hasHeader = true,
- Map<
String, String> ? body, - List<
String> ? files, - List<
FileByte> ? realFiles1, - List<
FileByte> ? realFiles2, - List<
FileByte> ? realFiles3, - List<
FileByte> ? realFiles4, - String paramFile1 = 'attachment[file][]',
- String paramFile2 = 'attachment[file][]',
- String paramFile3 = 'attachment[file][]',
- String paramFile4 = 'attachment[file][]',
Implementation
Future<BaseResponse> postAPIOfTraceability(String url, String method, data,
{bool hasHeader = true,
Map<String, String>? body,
List<String>? files,
List<FileByte>? realFiles1,
List<FileByte>? realFiles2,
List<FileByte>? realFiles3,
List<FileByte>? realFiles4,
String paramFile1 = 'attachment[file][]',
String paramFile2 = 'attachment[file][]',
String paramFile3 = 'attachment[file][]',
String paramFile4 = 'attachment[file][]'}) async {
final baseResponse = BaseResponse();
try {
final request = http.MultipartRequest(method, Uri.parse(Constants().baseUrl + url));
if (hasHeader) request.headers.addAll(await _getHeader());
if (body != null) request.fields.addAll(body);
if (files != null && files.isNotEmpty) {
for (String path in files)
request.files.add(_createPartFile(File(path), paramFile1));
} else {
if (realFiles1 != null) {
for (FileByte file in realFiles1)
request.files.add(_createPartFileByte(file, paramFile1));
}
if(realFiles2 != null){
for (FileByte file in realFiles2)
request.files.add(_createPartFileByte(file, paramFile2));
}
if(realFiles3 != null){
for (FileByte file in realFiles3)
request.files.add(_createPartFileByte(file, paramFile3));
}
if(realFiles4 != null){
for (FileByte file in realFiles4)
request.files.add(_createPartFileByte(file, paramFile4));
}
}
final streamResponse = await request.send().timeout(Duration(seconds: request.files.isEmpty ? 90 : Constants().timeout));
final response = await http.Response.fromStream(streamResponse);
print('\nadvn-request url: ' + Constants().baseUrl + url);
print('\nadvn-response: ${response.body}\n');
baseResponse.fromJson(jsonDecode(response.body), data);
} catch (e) {
return _responseError(baseResponse, e);
}
return baseResponse;
}