summary system backend implementation
This commit is contained in:
@@ -3,6 +3,7 @@ const express = require('express');
|
|||||||
const {getEnv, PORTS, EPISODIC} = require('@nexusai/shared');
|
const {getEnv, PORTS, EPISODIC} = require('@nexusai/shared');
|
||||||
const { getDB } = require('./db');
|
const { getDB } = require('./db');
|
||||||
const { createProject, getProjects, getProject, updateProject, deleteProject } = require('./db/projects');
|
const { createProject, getProjects, getProject, updateProject, deleteProject } = require('./db/projects');
|
||||||
|
const { createSummary, getSummary, getSummariesBySession, getSummariesByProject, updateSummary, deleteSummary } = require('./db/summaries');
|
||||||
|
|
||||||
const episodic = require('./episodic');
|
const episodic = require('./episodic');
|
||||||
const semantic = require('./semantic');
|
const semantic = require('./semantic');
|
||||||
@@ -270,6 +271,48 @@ app.delete('/projects/:id', (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************** */
|
||||||
|
/********** Summary Routes ********** */
|
||||||
|
/*********************************** */
|
||||||
|
|
||||||
|
// Create a summary (called by orchestration, fire-and-forget style)
|
||||||
|
app.post('/summaries', (req, res) => {
|
||||||
|
const { sessionId, projectId, content, tokenCount, episodeRange, metadata } = req.body;
|
||||||
|
if (!content) return res.status(400).json({ error: 'content is required' });
|
||||||
|
if (!sessionId && !projectId) return res.status(400).json({ error: 'sessionId or projectId is required' });
|
||||||
|
|
||||||
|
try {
|
||||||
|
const summary = createSummary({ sessionId, projectId, content, tokenCount, episodeRange, metadata });
|
||||||
|
res.status(201).json(summary);
|
||||||
|
} catch (err) {
|
||||||
|
res.status(500).json({ error: err.message });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Get summaries for a session
|
||||||
|
app.get('/sessions/:id/summaries', (req, res) => {
|
||||||
|
res.json(getSummariesBySession(req.params.id));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Get summaries for a project
|
||||||
|
app.get('/projects/:id/summaries', (req, res) => {
|
||||||
|
res.json(getSummariesByProject(req.params.id));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Update a summary (for cumulative updates)
|
||||||
|
app.patch('/summaries/:id', (req, res) => {
|
||||||
|
const summary = getSummary(req.params.id);
|
||||||
|
if (!summary) return res.status(404).json({ error: 'Not found' });
|
||||||
|
res.json(updateSummary(req.params.id, req.body));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Delete a summary
|
||||||
|
app.delete('/summaries/:id', (req, res) => {
|
||||||
|
deleteSummary(req.params.id);
|
||||||
|
res.status(204).send();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/********************************** */
|
/********************************** */
|
||||||
/********** Start Server ********** */
|
/********** Start Server ********** */
|
||||||
|
|||||||
Reference in New Issue
Block a user