invokeAPI method
Future<ApiResponse>
invokeAPI(
- String path,
- String? method,
- QueryParams queryParams,
- Iterable<
PFile> files, - Object? body,
- Map<
String, String?> headerParams, - Map<
String, String> formParams, - String? contentType, {
- String? basePath,
override
Implementation
Future<ApiResponse> invokeAPI(
String path,
String? method,
QueryParams queryParams,
Iterable<PFile> files,
Object? body,
Map<String, String?> headerParams,
Map<String, String> formParams,
String? contentType,
{String? basePath}) async {
basePath ??= this.basePath;
String url = basePath + path;
final _body = (contentType == "application/x-www-form-urlencoded" ||
files.isNotNullOrEmpty)
? FormData.fromMap({
for (var f in files) f.name!: f.toMultipartFile(),
...formParams,
})
: serialize(body);
try {
final _resp = await dio.request<String>(url,
data: _body,
queryParameters: queryParams,
options: Options(
method: method!,
contentType: contentType!,
headers: headerParams,
));
return ApiResponse(
_resp.statusCode ?? 500, _resp.data?.toString() ?? 'Unknown error');
} on DioError catch (e) {
return ApiResponse(
e.response?.statusCode ?? 500,
e.response?.data?.toString() ?? e.message,
);
}
}