From 7501fc54f1862283de1cfa01b278038d6035cede Mon Sep 17 00:00:00 2001 From: Storme-bit Date: Mon, 13 Apr 2026 06:18:34 -0700 Subject: [PATCH] added missing memory service project routes --- packages/memory-service/src/index.js | 38 ++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/packages/memory-service/src/index.js b/packages/memory-service/src/index.js index 09fd959..27b1c4b 100644 --- a/packages/memory-service/src/index.js +++ b/packages/memory-service/src/index.js @@ -2,6 +2,7 @@ require ('dotenv').config(); const express = require('express'); const {getEnv, PORTS, EPISODIC} = require('@nexusai/shared'); const { getDB } = require('./db'); +const { createProject, getProjects, getProject, updateProject, deleteProject } = require('./db/projects'); const episodic = require('./episodic'); const semantic = require('./semantic'); @@ -196,6 +197,43 @@ app.delete('/relationships', (req, res) => { res.status(204).send(); }) +/*********************************** */ +/********** Project Routes ********** */ +/*********************************** */ + +app.post('/projects', (req, res) => { + const { name, description, colour, icon } = req.body; + if (!name?.trim()) return res.status(400).json({ error: 'name is required' }); + try { + res.status(201).json(createProject({ name: name.trim(), description, colour, icon })); + } catch (err) { + res.status(500).json({ error: err.message }); + } +}); + +app.get('/projects', (req, res) => { + res.json(getProjects()); +}); + +app.get('/projects/:id', (req, res) => { + const project = getProject(req.params.id); + if (!project) return res.status(404).json({ error: 'Not found' }); + res.json(project); +}); + +app.patch('/projects/:id', (req, res) => { + const project = getProject(req.params.id); + if (!project) return res.status(404).json({ error: 'Not found' }); + res.json(updateProject(req.params.id, req.body)); +}); + +app.delete('/projects/:id', (req, res) => { + const project = getProject(req.params.id); + if (!project) return res.status(404).json({ error: 'Not found' }); + deleteProject(req.params.id); + res.status(204).send(); +}); + /********************************** */