insertRelationshipSQLs method

FutureOr<bool> insertRelationshipSQLs(
  1. TransactionOperation op,
  2. String entityName,
  3. String table,
  4. List<SQL> sqls,
  5. dynamic id,
  6. String otherTable,
  7. List otherIds,
)

Implementation

FutureOr<bool> insertRelationshipSQLs(
  TransactionOperation op,
  String entityName,
  String table,
  List<SQL> sqls,
  dynamic id,
  String otherTable,
  List otherIds,
) {
  if (sqls.length == 1 && sqls.first.isFullyDummy) {
    return true;
  }

  return executeTransactionOperation(op, sqls.first, (connection) {
    _logTransactionOperationSQL('insertRelationshipSQLs', op, sqls);

    var retInserts = sqls.map((sql) {
      var ret = doInsertRelationshipSQL(
        entityName,
        sql.mainTable ?? table,
        sql,
        op.transaction,
        connection,
      );

      if (sql.hasPosSQL) {
        return sql.posSQL!
            .map((e) {
              _logTransactionOperationSQL('insertRelationship[POS]', op, e);
              return doDeleteSQL(
                entityName,
                e.mainTable!,
                e,
                op.transaction,
                connection,
              );
            })
            .resolveAllWithValue(ret);
      } else {
        return ret;
      }
    }).resolveAll();
    return retInserts.resolveWithValue(true);
  });
}