import dbHandler from "../db-handler"; import _ from "lodash"; import sqlGenerator from "../../utils/sql-generator"; import { sqlName } from "../../utils/sql-safe"; export default async function DbDelete({ table, query, targetId, config, }) { let sqlObj = null; try { const finalQuery = query || {}; sqlObj = sqlGenerator({ tableName: table, genObject: _.pick(finalQuery, ["query", "searchOperator"]), targetId, }); const whereClause = sqlObj.where.string; if (whereClause) { let sql = `DELETE FROM ${sqlName(table, "table name")} ${whereClause}`; sqlObj.string = sql; sqlObj.values = sqlObj.where.values; const res = dbHandler({ query: sql, values: sqlObj.values, config, }); if (!res.success) { return { ...res, debug: { sqlObj } }; } return { success: Boolean(res.postInsertReturn?.affectedRows), postInsertReturn: res.postInsertReturn, debug: { sqlObj, }, }; } else { return { success: false, msg: `No WHERE clause`, debug: { sqlObj, }, }; } } catch (error) { return { success: false, error: error.message, debug: { sqlObj, }, }; } }