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"
  };
  Map<String,dynamic> callbackData={"table":table,"condition":condition};
  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(field);
        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"];
      await Simplify.executeFunctions("delete",_functions,{
        "table":tableName,
        resultPrimaryKeyField:primaryKeyField,
        resultPrimaryKeyValue:primaryKeyValue,
        "record_count":response["records"],
        "condition":operationCondition,
        "result":response
      });
    } else {
      result["message"] = response["message"];
    }
  } catch (ex, stack) {
    result["message"] = Simplify.getExceptionMessage(ex, stack: stack);
  }
  return result;
}