updateConditionedRecords method

Future<Map<String, dynamic>> updateConditionedRecords({
  1. required String table,
  2. required Map<String, dynamic> values,
  3. Map<String, dynamic> userDefinedFunctions = const {},
  4. String condition = "",
})
override

Implementation

Future<Map<String,dynamic>> updateConditionedRecords(
    {required String table,
    required Map<String,dynamic >values,
    Map<String,dynamic> userDefinedFunctions = const {},
    String condition = ""}) async {
  Map<String,dynamic> result = Simplify.getDefaultResult();
  String query = "";
  try {
    List<dynamic> fieldValues = [];
    String updateString = "";
    values.forEach((fieldName, fieldValue) {
      if (updateString != "") {
        updateString += ",";
      }
      updateString += fieldName + "=?";
      fieldValues.add(fieldValue);
    });
    if (userDefinedFunctions != null) {
      userDefinedFunctions.forEach((fieldName, function) {
        if (updateString != "") {
          updateString += ",";
        }
        updateString += fieldName + "=" + function["field_value"];
      });
    }
    if (updateString != "") {
      updateString += ",";
    }
    updateString += "modified_on=date('now')";
    query = "UPDATE " +
        table +
        " SET " +
        updateString +
        " WHERE " +
        condition +
        ";";
    if (logQuery) {
      _debug(query);
    }
    result = await executeActionQuery(
        query: query, action: actionUpdate, values: fieldValues);
  } catch (ex, stack) {
    result["query"] = query;
    result["message"] = Simplify.getExceptionMessage(ex, stack: stack);
  }
  return result;
}