executeRtuUiWithResult<T> function
Implementation
Future<Result<T>> executeRtuUiWithResult<T>(
Future<String> Function() invokeMethod, {
required T Function(Map<String, dynamic> data) fromJson,
}) async {
try {
final resultJson = await invokeMethod();
final json = jsonDecode(resultJson) as Map<String, dynamic>;
final OperationStatus status =
OperationStatus.values.byName(json['status'] as String);
switch (status) {
case OperationStatus.OK:
return Result.ok(fromJson(json['data']));
case OperationStatus.CANCELED:
return Result.cancel();
}
} on PlatformException catch (e) {
Logger.root.severe(e);
return Result.error(e.message, errorCode: e.code);
} catch (e) {
Logger.root.severe(e);
return Result.error(e.toString());
}
}