get<T> method
Implementation
Future<Result<T>> get<T>(IDs ids) async {
final localDb = await localRepo();
try {
if (hasRemotePriority && includeRemoteTransactions) {
final result = await remoteRepo!.get<T>(ids);
if (result.isSuccessfulObj) return result;
}
if (includeLocalTransactions && ids.localId != null) {
final result = await localDb!.get<T>(ids);
if (result.isSuccessfulObj) return result;
}
if (includeRemoteTransactions &&
StringUtils.instance.isNotBlank(ids.id)) {
final remoteResult = await remoteRepo!.get<T>(ids);
if (remoteResult.isSuccessfulObj && includeLocalTransactions) {
await localDb!.add<T>(remoteResult.obj as JsonObject<T>);
}
return remoteResult;
}
return Result.error(
log: Log(msg: 'No local or remote result for ids ${ids.toString()}'));
} catch (e, st) {
return _getErrorLog(msg: e.toString(), stacktrace: st);
} finally {
// await localDb?.close();
}
}