deleteRecord method
Implementation
Future<Map<String,dynamic>> deleteRecord({String condition=""}) async{
Map<String,dynamic> result={"status":"failure","message":"nothing executed","operation":"DELETE"};
try{
String primaryKeyField="id";
int primaryKeyValue=0;
String operationCondition="1=1";
fields.forEach((name,field){
var value=getFieldValue(name);
if(name.equalsIgnoreCase("id")){
primaryKeyValue=int.parse(value.toString());
}
else{
List attributes=getFieldAttributes(name);
if(condition==""){
if(attributes.contains(attributeCheckModify)||attributes.contains(attributeCheckUpdate)){
operationCondition+=" AND $name="+getFieldSQLValue(name);
}
}
}
});
if(condition!=""){
operationCondition=primaryKeyField+" IN (SELECT $primaryKeyField FROM $table WHERE $condition)";
}
else{
operationCondition+=" AND $primaryKeyField=$primaryKeyValue";
}
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"];
}
else{
result["message"]=response["message"];
}
}
catch(ex,stack){
result["message"]=Simplify.getExceptionMessage(ex,stack: stack);
}
return result;
}