insertOrThrow<T extends TableBase> method

Future<int?> insertOrThrow<T extends TableBase>(
  1. T obj,
  2. bool ignoreBatch
)

Implementation

Future<int?> insertOrThrow<T extends TableBase>(
    T obj, bool ignoreBatch) async {
  if (_dbModel!.preSaveAction != null) {
    obj = await _dbModel!.preSaveAction!(_tableName!, obj) as T;
  }
  final Map<String, dynamic> data = obj.toMap(forQuery: true);
  if (openedBatch[_dbModel!.databaseName] == null || ignoreBatch) {
    final Database? db = await this.db;
    final result = await db?.insert(_tableName!, data);
    obj.saveResult = BoolResult(
        success: true,
        successMessage:
            '$_tableName-> ${_primaryKeyList![0]}=$result saved successfully');
    return result;
  } else {
    openedBatch[_dbModel!.databaseName]!.insert(_tableName!, data);
    return null;
  }
}