40210-vm/backend/src/routes/workspace.js
2026-06-05 02:27:51 +00:00

85 lines
2.0 KiB
JavaScript

const express = require('express');
const WorkspaceService = require('../services/workspace');
const wrapAsync = require('../helpers').wrapAsync;
const router = express.Router();
router.get(
'/bootstrap',
wrapAsync(async (req, res) => {
const payload = await WorkspaceService.bootstrap(req.currentUser);
res.status(200).send(payload);
}),
);
router.post(
'/conversations',
wrapAsync(async (req, res) => {
const payload = await WorkspaceService.createConversation(req.body, req.currentUser);
res.status(200).send(payload);
}),
);
router.get(
'/conversations/:id',
wrapAsync(async (req, res) => {
const payload = await WorkspaceService.getConversation(req.params.id, req.currentUser);
res.status(200).send(payload);
}),
);
router.patch(
'/conversations/:id',
wrapAsync(async (req, res) => {
const payload = await WorkspaceService.updateConversation(
req.params.id,
req.body,
req.currentUser,
);
res.status(200).send(payload);
}),
);
router.delete(
'/conversations/:id',
wrapAsync(async (req, res) => {
const payload = await WorkspaceService.deleteConversation(req.params.id, req.currentUser);
res.status(200).send(payload);
}),
);
router.post(
'/conversations/:id/messages',
wrapAsync(async (req, res) => {
const payload = await WorkspaceService.sendMessage(req.params.id, req.body, req.currentUser);
res.status(200).send(payload);
}),
);
router.post(
'/conversations/:id/messages/:messageId/retry',
wrapAsync(async (req, res) => {
const payload = await WorkspaceService.retryMessage(
req.params.id,
req.params.messageId,
req.currentUser,
);
res.status(200).send(payload);
}),
);
router.post(
'/conversations/:id/messages/:messageId/regenerate',
wrapAsync(async (req, res) => {
const payload = await WorkspaceService.regenerateMessage(
req.params.id,
req.params.messageId,
req.currentUser,
);
res.status(200).send(payload);
}),
);
module.exports = router;