Files
Prisma/lib/core/database/database_service.dart
T
2026-05-23 11:46:52 +03:00

33 lines
826 B
Dart

import 'package:isar/isar.dart';
import '../errors/app_exception.dart';
import '../utils/result.dart';
import 'app_database.dart';
class DatabaseService {
DatabaseService(this.database);
final AppDatabase database;
Isar get isar => database.isar;
Future<Result<T>> safeRead<T>(Future<T> Function(Isar isar) action) async {
try {
return Success(await action(isar));
} catch (error) {
return Error(
DatabaseException(error.toString(), details: error).toFailure());
}
}
Future<Result<T>> safeWrite<T>(Future<T> Function(Isar isar) action) async {
try {
final value = await isar.writeTxn(() => action(isar));
return Success(value);
} catch (error) {
return Error(
DatabaseException(error.toString(), details: error).toFailure());
}
}
}