episodes touch
This commit is contained in:
@@ -266,6 +266,19 @@ function deleteEpisode(id) {
|
||||
db.prepare(`DELETE FROM episodes WHERE id = ?`).run(id);
|
||||
}
|
||||
|
||||
function touchEpisodes(ids) {
|
||||
if (!ids.length) return;
|
||||
|
||||
const db = getDB(); // <-- missing in your version
|
||||
const placeholders = ids.map(() => '?').join(',');
|
||||
db.prepare(`
|
||||
UPDATE episodes
|
||||
SET access_count = access_count + 1,
|
||||
last_accessed_at = ?
|
||||
WHERE id IN (${placeholders})
|
||||
`).run(Date.now(), ...ids);
|
||||
}
|
||||
|
||||
/******** Embedding Helper ********/
|
||||
async function getEpisodeEmbedding(userMessage, aiResponse){
|
||||
const url = getEnv('EMBEDDING_SERVICE_URL', SERVICES.EMBEDDING_URL);
|
||||
@@ -315,6 +328,7 @@ module.exports = {
|
||||
getEpisodesSince,
|
||||
searchEpisodes,
|
||||
deleteEpisode,
|
||||
touchEpisodes,
|
||||
getEpisodesByProject,
|
||||
buildFtsQuery,
|
||||
};
|
||||
@@ -139,6 +139,13 @@ app.get('/episodes/search', (req, res) => {
|
||||
res.json(episodic.searchEpisodes(q, Number(limit), parsedSessionIds));
|
||||
});
|
||||
|
||||
app.post('/episodes/touch', (req, res) => {
|
||||
const { ids } = req.body;
|
||||
if(!Array.isArray(ids)) return res.status(400).json({error: 'ids must be an array'});
|
||||
episodic.touchEpisodes(ids);
|
||||
res.json({touched: ids.length});
|
||||
})
|
||||
|
||||
app.get('/episodes/:id', (req, res) => {
|
||||
const episode = episodic.getEpisode(req.params.id);
|
||||
if (!episode) return res.status(404).json({ error: 'Episode not found' });
|
||||
|
||||
Reference in New Issue
Block a user