mirror of
https://github.com/mudabbir-ahmad/peworkshop.git
synced 2026-10-07 19:50:20 +00:00
cannot fix issue with elapsed timer on admin dashboard. fixing issues with QR code editing.
Grey = cant click Red = current Green = complete blue = skipped?
This commit is contained in:
1 parent
7d6b73ffb4
commit
0afa6817a8
12 files changed
+1529
-211
No files matched your search
@@ -17,36 +17,113 @@ export function getDb() {
|
||||
|
||||
export function queryOne(sql, params = []) {
|
||||
return new Promise((resolve, reject) => {
|
||||
getDb().get(sql, params, (err, row) => {
|
||||
const db = getDb();
|
||||
if (!db) {
|
||||
reject(new Error("Database connection not available"));
|
||||
return;
|
||||
}
|
||||
|
||||
db.get(sql, params, function (err, row) {
|
||||
if (err) {
|
||||
console.error("SQL Error in queryOne():", err.message);
|
||||
console.error("SQL Statement:", sql);
|
||||
console.error("Parameters:", JSON.stringify(params));
|
||||
reject(err);
|
||||
} else {
|
||||
resolve(row);
|
||||
return;
|
||||
}
|
||||
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export function query(sql, params = []) {
|
||||
return new Promise((resolve, reject) => {
|
||||
getDb().all(sql, params, (err, rows) => {
|
||||
const db = getDb();
|
||||
if (!db) {
|
||||
reject(new Error("Database connection not available"));
|
||||
return;
|
||||
}
|
||||
|
||||
db.all(sql, params, function (err, rows) {
|
||||
if (err) {
|
||||
console.error("SQL Error in query():", err.message);
|
||||
console.error("SQL Statement:", sql);
|
||||
console.error("Parameters:", JSON.stringify(params));
|
||||
reject(err);
|
||||
} else {
|
||||
resolve(rows);
|
||||
return;
|
||||
}
|
||||
|
||||
resolve(rows || []);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export function run(sql, params = []) {
|
||||
return new Promise((resolve, reject) => {
|
||||
getDb().run(sql, params, function (err) {
|
||||
const db = getDb();
|
||||
if (!db) {
|
||||
const error = new Error("Database connection not available");
|
||||
console.error(error);
|
||||
reject(error);
|
||||
return;
|
||||
}
|
||||
|
||||
// Add better logging
|
||||
if (
|
||||
sql.toLowerCase().includes("begin") ||
|
||||
sql.toLowerCase().includes("commit") ||
|
||||
sql.toLowerCase().includes("rollback")
|
||||
) {
|
||||
console.log(`Transaction operation: ${sql}`);
|
||||
}
|
||||
|
||||
db.run(sql, params, function (err) {
|
||||
if (err) {
|
||||
console.error("SQL Error in run():", err.message);
|
||||
console.error("SQL Statement:", sql);
|
||||
console.error("Parameters:", JSON.stringify(params));
|
||||
reject(err);
|
||||
} else {
|
||||
resolve({ lastID: this.lastID, changes: this.changes });
|
||||
return;
|
||||
}
|
||||
|
||||
resolve({
|
||||
lastID: this.lastID,
|
||||
changes: this.changes,
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// New function to explicitly enable foreign keys
|
||||
export function enableForeignKeys() {
|
||||
return run("PRAGMA foreign_keys = ON;")
|
||||
.then(() => console.log("Foreign key constraints enabled"))
|
||||
.catch((err) => console.error("Error enabling foreign keys:", err));
|
||||
}
|
||||
|
||||
// New function to run multiple statements as a transaction
|
||||
export async function runTransaction(statements) {
|
||||
try {
|
||||
// Begin transaction
|
||||
await run("BEGIN TRANSACTION");
|
||||
|
||||
// Execute all statements in order
|
||||
for (const [sql, params] of statements) {
|
||||
await run(sql, params);
|
||||
}
|
||||
|
||||
// Commit on success
|
||||
await run("COMMIT");
|
||||
return { success: true };
|
||||
} catch (error) {
|
||||
// Rollback on any error
|
||||
try {
|
||||
await run("ROLLBACK");
|
||||
console.log("Transaction rolled back due to error");
|
||||
} catch (rollbackError) {
|
||||
console.error("Error during rollback:", rollbackError);
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user