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) {
        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);
  });
}