doRequest method
Implementation
Future<dynamic> doRequest(
String methodName, Map<String, Object?> parameters) async {
var requestHandler = this.requestHandler;
if (requestHandler != null) {
var ret = requestHandler(this, methodName, parameters);
if (ret != null) return ret;
}
var needsJsonRequest = false;
parameters = parameters.map((key, value) {
Object? val = value;
if (value is Uint8List) {
val = Json.toJson(value);
needsJsonRequest = true;
} else if (value.isPrimitiveList || value.isPrimitiveMap) {
needsJsonRequest = true;
} else if (!value.isPrimitiveValue) {
val = Json.toJson(value);
needsJsonRequest = true;
}
return MapEntry(key, val);
});
final modulePath = this.modulePath;
var path = modulePath.isNotEmpty ? '$modulePath/$methodName' : methodName;
HttpMethod method;
HttpResponse response;
if (needsJsonRequest) {
method = HttpMethod.POST;
response = await httpClient.post(path,
body: parameters, contentType: MimeType.json);
} else {
method = HttpMethod.GET;
response = await httpClient.get(path, parameters: parameters);
}
return parseResponse(
response,
requestMethod: method,
requestPath: path,
methodName: methodName,
parameters: parameters,
);
}