Updates
This commit is contained in:
@@ -107,11 +107,17 @@ export default async function <
|
||||
const parsedRes = checkArrayDepth(res, 2)
|
||||
? parseDbResults({ unparsedResults: res[0], tableSchema })
|
||||
: res[0];
|
||||
const parsedBatchRes = checkArrayDepth(res, 3)
|
||||
? res.map((_r: any[][]) => {
|
||||
return parseDbResults({ unparsedResults: _r[0], tableSchema });
|
||||
})
|
||||
: res;
|
||||
const parsedBatchRes =
|
||||
connQueries.length > 1
|
||||
? checkArrayDepth(res, 3)
|
||||
? res.map((_r: any[][]) => {
|
||||
return parseDbResults({
|
||||
unparsedResults: _r[0],
|
||||
tableSchema,
|
||||
});
|
||||
})
|
||||
: res
|
||||
: undefined;
|
||||
|
||||
const isSuccess = Array.isArray(res) && Array.isArray(res[0]);
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@ import dsqlCrudGet from "./crud-get";
|
||||
import connDbHandler from "../db/conn-db-handler";
|
||||
import addDbEntry from "../../functions/backend/db/addDbEntry";
|
||||
import updateDbEntry from "../../functions/backend/db/updateDbEntry";
|
||||
import sqlGenerator from "../../functions/dsql/sql/sql-generator";
|
||||
import deleteDbEntry from "../../functions/backend/db/deleteDbEntry";
|
||||
|
||||
export default async function dsqlCrud<
|
||||
T extends { [key: string]: any } = { [key: string]: any },
|
||||
@@ -30,6 +32,7 @@ export default async function dsqlCrud<
|
||||
tableSchema,
|
||||
deleteKeyValuesOperator,
|
||||
dbConfig,
|
||||
query,
|
||||
} = params;
|
||||
|
||||
const finalData = (sanitize ? sanitize({ data }) : data) as T;
|
||||
@@ -37,6 +40,25 @@ export default async function dsqlCrud<
|
||||
sanitize ? sanitize({ batchData }) : batchData
|
||||
) as T[];
|
||||
|
||||
const queryObject = query
|
||||
? sqlGenerator({
|
||||
tableName: table,
|
||||
genObject: query,
|
||||
dbFullName,
|
||||
})
|
||||
: undefined;
|
||||
|
||||
const whereClause = queryObject?.string.replace(/^.*?( WHERE )/, "$1");
|
||||
|
||||
const whereClauseObject = whereClause
|
||||
? {
|
||||
clause: whereClause!,
|
||||
params: queryObject?.values
|
||||
.filter((v) => typeof v == "string" || typeof v == "number")
|
||||
.map((v) => String(v)),
|
||||
}
|
||||
: undefined;
|
||||
|
||||
switch (action) {
|
||||
case "get":
|
||||
return await dsqlCrudGet<T, K>(params);
|
||||
@@ -68,37 +90,50 @@ export default async function dsqlCrud<
|
||||
debug,
|
||||
tableSchema,
|
||||
dbConfig,
|
||||
whereClauseObject,
|
||||
});
|
||||
|
||||
return UPDATE_RESULT;
|
||||
|
||||
case "delete":
|
||||
const deleteQuery = sqlDeleteGenerator({
|
||||
data: targetId
|
||||
? { id: targetId }
|
||||
: targetField && targetValue
|
||||
? { [targetField]: targetValue }
|
||||
: deleteData,
|
||||
tableName: table,
|
||||
dbFullName,
|
||||
deleteKeyValues,
|
||||
deleteKeyValuesOperator,
|
||||
});
|
||||
let res: PostInsertReturn;
|
||||
|
||||
const res = (await connDbHandler({
|
||||
query: deleteQuery?.query,
|
||||
values: deleteQuery?.values,
|
||||
dsqlConnOpts: { config: dbConfig },
|
||||
})) as PostInsertReturn;
|
||||
if (whereClauseObject) {
|
||||
const DELETE_RES = await deleteDbEntry({
|
||||
whereClauseObject,
|
||||
tableName: table,
|
||||
dbFullName,
|
||||
});
|
||||
|
||||
return {
|
||||
success: Boolean(res.affectedRows),
|
||||
payload: res,
|
||||
queryObject: {
|
||||
sql: format(deleteQuery?.query || ""),
|
||||
params: deleteQuery?.values || [],
|
||||
},
|
||||
};
|
||||
return DELETE_RES;
|
||||
} else {
|
||||
const deleteQuery = sqlDeleteGenerator({
|
||||
data: targetId
|
||||
? { id: targetId }
|
||||
: targetField && targetValue
|
||||
? { [targetField]: targetValue }
|
||||
: deleteData,
|
||||
tableName: table,
|
||||
dbFullName,
|
||||
deleteKeyValues,
|
||||
deleteKeyValuesOperator,
|
||||
});
|
||||
|
||||
res = (await connDbHandler({
|
||||
query: deleteQuery?.query,
|
||||
values: deleteQuery?.values,
|
||||
dsqlConnOpts: { config: dbConfig },
|
||||
})) as PostInsertReturn;
|
||||
|
||||
return {
|
||||
success: Boolean(res.affectedRows),
|
||||
payload: res,
|
||||
queryObject: {
|
||||
sql: format(deleteQuery?.query || ""),
|
||||
params: deleteQuery?.values || [],
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
default:
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user