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;