deleteRecord method

Future<Map<String, dynamic>> deleteRecord({
  1. String condition = "",
})

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