1
1
mirror of https://github.com/Fabio286/antares.git synced 2025-06-05 21:59:22 +02:00

feat: delete rows from tables without a primary key

This commit is contained in:
2021-01-28 18:33:29 +01:00
parent af96647603
commit 574d493908
2 changed files with 51 additions and 32 deletions

View File

@ -92,25 +92,48 @@ export default (connections) => {
}
});
ipcMain.handle('delete-table-rows', async (event, params) => {
let idString;
ipcMain.handle('delete-table-rows', async (event, params) => { // TODO: check primary or try other
if (params.primary) {
const idString = params.rows.map(row => typeof row[params.primary] === 'string'
? `"${row[params.primary]}"`
: row[params.primary]).join(',');
if (typeof params.rows[0] === 'string')
idString = params.rows.map(row => `"${row}"`).join(',');
else
idString = params.rows.join(',');
try {
const result = await connections[params.uid]
.schema(params.schema)
.delete(params.table)
.where({ [params.primary]: `IN (${idString})` })
.run();
try {
const result = await connections[params.uid]
.schema(params.schema)
.delete(params.table)
.where({ [params.primary]: `IN (${idString})` })
.run();
return { status: 'success', response: result };
return { status: 'success', response: result };
}
catch (err) {
return { status: 'error', response: err.toString() };
}
}
catch (err) {
return { status: 'error', response: err.toString() };
else {
try {
for (const row of params.rows) {
for (const key in row) {
if (typeof row[key] === 'string')
row[key] = `'${row[key]}'`;
row[key] = `= ${row[key]}`;
}
await connections[params.uid]
.schema(params.schema)
.delete(params.table)
.where(row)
.limit(1)
.run();
}
return { status: 'success', response: [] };
}
catch (err) {
return { status: 'error', response: err.toString() };
}
}
});