docs: enterprise refactor plan with ralph specs
This commit is contained in:
53
dist/db/SessionRepository.js
vendored
Normal file
53
dist/db/SessionRepository.js
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
"use strict";
|
||||
/**
|
||||
* SessionRepository — CRUD for sessions table.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.SessionRepository = void 0;
|
||||
class SessionRepository {
|
||||
constructor(db) {
|
||||
this.db = db;
|
||||
}
|
||||
create(params) {
|
||||
this.db
|
||||
.prepare(`INSERT INTO sessions (id, url, status, seed, max_states, started_at, config_json)
|
||||
VALUES (?, ?, 'running', ?, ?, ?, ?)`)
|
||||
.run(params.id, params.url, params.seed, params.maxStates, params.startedAt, params.configJson ?? '{}');
|
||||
}
|
||||
findById(id) {
|
||||
return this.db
|
||||
.prepare('SELECT * FROM sessions WHERE id = ?')
|
||||
.get(id);
|
||||
}
|
||||
findAll() {
|
||||
return this.db.prepare('SELECT * FROM sessions ORDER BY started_at DESC').all();
|
||||
}
|
||||
update(id, fields) {
|
||||
const sets = [];
|
||||
const values = [];
|
||||
if (fields.status !== undefined) {
|
||||
sets.push('status = ?');
|
||||
values.push(fields.status);
|
||||
}
|
||||
if (fields.statesVisited !== undefined) {
|
||||
sets.push('states_visited = ?');
|
||||
values.push(fields.statesVisited);
|
||||
}
|
||||
if (fields.anomaliesFound !== undefined) {
|
||||
sets.push('anomalies_found = ?');
|
||||
values.push(fields.anomaliesFound);
|
||||
}
|
||||
if (fields.finishedAt !== undefined) {
|
||||
sets.push('finished_at = ?');
|
||||
values.push(fields.finishedAt);
|
||||
}
|
||||
if (sets.length === 0)
|
||||
return;
|
||||
values.push(id);
|
||||
this.db.prepare(`UPDATE sessions SET ${sets.join(', ')} WHERE id = ?`).run(...values);
|
||||
}
|
||||
delete(id) {
|
||||
this.db.prepare('DELETE FROM sessions WHERE id = ?').run(id);
|
||||
}
|
||||
}
|
||||
exports.SessionRepository = SessionRepository;
|
||||
Reference in New Issue
Block a user