sqlVariableResolver method

Future<Object?> sqlVariableResolver(
  1. DB<DBConnection> db,
  2. String variableName, {
  3. Map<String, dynamic>? properties,
})

Implementation

Future<Object?> sqlVariableResolver(DB db, String variableName,
    {Map<String, dynamic>? properties}) async {
  final logInfo = this.logInfo;
  final logError = this.logError;

  var variableSQLs =
      sqls.where((sql) => sql.sqlID == '%$variableName%').toList();

  for (var sql in variableSQLs) {
    var r = await db.executeSQL(sql, executedSqls: executedSqls);
    if (r == null) {
      if (logError != null) {
        logError("SQL execution for variable `$variableName` failed: $sql");
      }
      continue;
    }

    if (logInfo != null) {
      logInfo("Executed SQL for variable `$variableName`: $sql");
    }

    var results = r.results;
    if (results == null || results.isEmpty) continue;

    var value = results.first.values.firstOrNull;
    if (value != null) {
      return value;
    }
  }

  return getProperty(variableName, properties: properties);
}