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