callServerEndpoint<T> method
Calls a server endpoint method by its name, passing arguments in a map. Typically, this method is called by generated code.
Implementation
@override
Future<T> callServerEndpoint<T>(
String endpoint,
String method,
Map<String, dynamic> args,
) async {
var callContext = MethodCallContext(
endpointName: endpoint,
methodName: method,
arguments: args,
);
try {
var authenticationValue =
await authenticationKeyManager?.getHeaderValue();
var body = formatArgs(args, method);
var url = Uri.parse('$host$endpoint');
var data = await _requestDelegate.serverRequest(
url,
body: body,
authenticationValue: authenticationValue,
);
T result;
if (T == getType<void>()) {
result = returnVoid() as T;
} else {
result = parseData<T>(data, T, serializationManager);
}
onSucceededCall?.call(callContext);
return result;
} catch (e, s) {
onFailedCall?.call(callContext, e, s);
rethrow;
}
}