← Files BranchaARCHIVED FILE

skills/brancha/app/src/server/projects/project.routes.ts

928 Bytes · Oct 4, 2026 · 12:29 UTC

↓ Download file

import { readJsonBody } from '../http/body.js';
import { Router } from '../http/router.js';
import { sendJson } from '../http/response.js';
import { ProjectService } from './project.service.js';

export function registerProjectRoutes(router: Router, service: ProjectService) {
  router.get('/api/projects', ({ res }) => {
    sendJson(res, 200, service.list());
  });

  router.post('/api/projects', async ({ req, res }) => {
    sendJson(res, 200, service.create(await readJsonBody(req)));
  });

  router.put('/api/projects/:projectId', async ({ req, res, params }) => {
    sendJson(res, 200, service.rename(params.projectId, await readJsonBody(req)));
  });

  router.delete('/api/projects/:projectId', ({ res, params }) => {
    sendJson(res, 200, service.delete(params.projectId));
  });

  router.get('/api/projects/:projectId/tree', ({ res, params }) => {
    sendJson(res, 200, service.tree(params.projectId));
  });
}

SHA-256: 19ff9466464039ea78e8dd09fce3ae9dc06ffadaaff34c6aa2d0018658beee84