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