deleteRecord method
Implementation
Future<Map<String,dynamic>> deleteRecord({String condition = ""}) async {
Map<String,dynamic> result = {
"status": "failure",
"message": "nothing executed",
"operation": "DELETE"
};
Map<String,dynamic> callbackData={"table":table,"condition":condition};
try {
String primaryKeyField = "id";
String primaryKeyValue = "";
String operationCondition = "1=1";
fields.forEach((name, field) {
var value = getFieldValue(name);
if (field[fieldAttributes].contains(attributePrimaryKey)) {
primaryKeyField = field[fieldName];
result[attributePrimaryKey] = primaryKeyField;
}
});
if (condition != "") {
operationCondition = primaryKeyField + " IN (SELECT $primaryKeyField FROM $table WHERE $condition)";
Map<String,dynamic >response = await dbHandler.deleteConditionedRecords(table: table, condition: operationCondition);
if (response.getString("status").equalsIgnoreCase("success")){
result["status"] = "success";
result["message"] =
"${response["records"]} record(s) deleted successfully";
result["record_count"] = response["records"];
await Simplify.executeFunctions("delete",_functions,{
"table":tableName,
resultPrimaryKeyField:primaryKeyField,
resultPrimaryKeyValue:primaryKeyValue,
"record_count":response["records"],
"records":response["records"],
"condition":operationCondition,
"result":response
});
} else {
result["message"] = response["message"];
}
} else {
result["message"] = "condition not specified";
// operationCondition += " AND $primaryKeyField=$primaryKeyValue";
}
} catch (ex, stack) {
result["message"] = Simplify.getExceptionMessage(ex, stack: stack);
}
await Simplify.executeFunctions("delete",_functions,callbackData);
return result;
}