get sessions by projectId

This commit is contained in:
Storme-bit
2026-04-14 01:07:59 -07:00
parent 8d4a553a2a
commit 7598e8b9f4
5 changed files with 37 additions and 18 deletions

View File

@@ -23,14 +23,25 @@ function getSession(id) {
return parseRow(stmt.get(id));
}
function getSessions(limit = EPISODIC.DEFAULT_PAGE_SIZE, offset = 0) {
function getSessions(limit = EPISODIC.DEFAULT_PAGE_SIZE, offset = 0, projectId = null) {
const db = getDB();
const stmt = db.prepare(`
SELECT * FROM sessions
ORDER BY updated_at DESC
LIMIT ? OFFSET ?
`);
return stmt.all(limit, offset).map(parseRow);
const stmt = projectId
? db.prepare(`
SELECT * FROM sessions
WHERE project_id = ?
ORDER BY updated_at DESC
LIMIT ? OFFSET ?
`)
: db.prepare(`
SELECT * FROM sessions
ORDER BY updated_at DESC
LIMIT ? OFFSET ?
`);
return projectId
? stmt.all(projectId, limit, offset).map(parseRow)
: stmt.all(limit, offset).map(parseRow);
}
// Retrieves a session by its external ID

View File

@@ -44,8 +44,8 @@ app.post('/sessions', (req, res) => {
});
app.get('/sessions', (req, res) => {
const {limit = EPISODIC.DEFAULT_PAGE_SIZE, offset = EPISODIC.DEFAULT_OFFSET } = req.query;
const sessions = episodic.getSessions(Number(limit), Number(offset));
const {limit = EPISODIC.DEFAULT_PAGE_SIZE, offset = EPISODIC.DEFAULT_OFFSET, projectId } = req.query;
const sessions = episodic.getSessions(Number(limit), Number(offset, projectId ?? null));
res.json(sessions);
})