Versie 0.2.0
This commit is contained in:
commit
e77d8fd373
495 files changed
+81026
No files matched your search
@@ -0,0 +1,43 @@
|
||||
// Generated, do not edit. sha256:051b73ea4c90cd1dfd7110d9d56e91cb527361b375f6b09d6509f8db81b2835e
|
||||
import * as db from '../db.js';
|
||||
import { CONFIG } from '../../shared/config.js';
|
||||
import { deleteValuation } from './valuations.js';
|
||||
import { deleteProposal } from './proposals.js';
|
||||
import { unlinkTxEvent } from './tx-links.js';
|
||||
|
||||
export function tableColumns(name) {
|
||||
if (!CONFIG.DB_TABLES.includes(name)) throw new Error(`Unknown table: ${name}`);
|
||||
return db.all(`PRAGMA table_info(${name})`).map(c => c.name);
|
||||
}
|
||||
export function listTableRaw(name) {
|
||||
if (!CONFIG.DB_TABLES.includes(name)) throw new Error(`Unknown table: ${name}`);
|
||||
return db.all(`SELECT * FROM ${name} ORDER BY rowid DESC`);
|
||||
}
|
||||
|
||||
const TABLE_ROW_DELETERS = {
|
||||
valuations: (id) => deleteValuation(id),
|
||||
reconcile_proposals: (id) => deleteProposal(id),
|
||||
tx_event_link: (id) => {
|
||||
const r = db.one(`SELECT walletTransactionId, eventId FROM WalletTransactionEventLink WHERE id=?`, [id]);
|
||||
if (!r) throw new Error(`Link ${id} does not exist.`);
|
||||
return unlinkTxEvent(r.walletTransactionId, r.eventId);
|
||||
},
|
||||
};
|
||||
export async function deleteTableRow(name, id) {
|
||||
if (!CONFIG.DB_DELETABLE_TABLES.includes(name)) throw new Error(`Table ${name} is not deletable.`);
|
||||
const custom = TABLE_ROW_DELETERS[name];
|
||||
if (custom) { await custom(id); return; }
|
||||
db.run(`DELETE FROM ${name} WHERE id=?`, [id]);
|
||||
await db.persist();
|
||||
}
|
||||
|
||||
export async function clearTable(name) {
|
||||
if (!CONFIG.DB_DELETABLE_TABLES.includes(name)) throw new Error(`Table ${name} cannot be cleared.`);
|
||||
const custom = TABLE_ROW_DELETERS[name];
|
||||
if (custom) {
|
||||
for (const r of db.all(`SELECT id FROM ${name}`)) await custom(r.id);
|
||||
return;
|
||||
}
|
||||
db.run(`DELETE FROM ${name}`);
|
||||
await db.persist();
|
||||
}
|
||||
Reference in new issue
Block a user