invokeSDKApiMethod<T> method
Future<SyneriseResult<T> >
invokeSDKApiMethod<T>(
- String invokeMethodName, {
- dynamic parameters,
- bool isMappable = false,
- GenericTypeKey? genericTypeKey,
Implementation
Future<SyneriseResult<T>> invokeSDKApiMethod<T>(String invokeMethodName,
{dynamic parameters,
bool isMappable = false,
GenericTypeKey? genericTypeKey}) async {
SyneriseResult<T>? result;
await Dependencies.backgroundMethodChannel
.invokeMethod(invokeMethodName, parameters)
.then((dynamic value) {
if (!isMappable) {
if (value is T) {
result = SyneriseResult<T>(value, null);
} else {
result = SyneriseResult<T>(
null, SyneriseError.unknownApiCommunicationError());
}
} else {
dynamic finalValue = genericTypeKey != null
? Mappings.makeGenericMapping(genericTypeKey, value)
: Mappings.makeMapping<T>(value as Map);
if (finalValue != null && finalValue is T) {
result = SyneriseResult<T>(finalValue, null);
} else {
result = SyneriseResult<T>(
null, SyneriseError.unknownApiCommunicationError());
}
}
}).catchError((e) {
result = SyneriseResult<T>(null, SyneriseError.fromObject(e));
});
return Future.value(result);
}