router.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. const MessageHttpController = require('./Features/Messages/MessageHttpController')
  2. const { ObjectId } = require('./mongodb')
  3. module.exports = {
  4. route(app) {
  5. app.param('projectId', function (req, res, next, projectId) {
  6. if (ObjectId.isValid(projectId)) {
  7. next()
  8. } else {
  9. res.status(400).send('Invalid projectId')
  10. }
  11. })
  12. app.param('threadId', function (req, res, next, threadId) {
  13. if (ObjectId.isValid(threadId)) {
  14. next()
  15. } else {
  16. res.status(400).send('Invalid threadId')
  17. }
  18. })
  19. // These are for backwards compatibility
  20. app.get(
  21. '/room/:projectId/messages',
  22. MessageHttpController.getGlobalMessages
  23. )
  24. app.post(
  25. '/room/:projectId/messages',
  26. MessageHttpController.sendGlobalMessage
  27. )
  28. app.get(
  29. '/project/:projectId/messages',
  30. MessageHttpController.getGlobalMessages
  31. )
  32. app.post(
  33. '/project/:projectId/messages',
  34. MessageHttpController.sendGlobalMessage
  35. )
  36. app.post(
  37. '/project/:projectId/thread/:threadId/messages',
  38. MessageHttpController.sendThreadMessage
  39. )
  40. app.get('/project/:projectId/threads', MessageHttpController.getAllThreads)
  41. app.post(
  42. '/project/:projectId/thread/:threadId/messages/:messageId/edit',
  43. MessageHttpController.editMessage
  44. )
  45. app.delete(
  46. '/project/:projectId/thread/:threadId/messages/:messageId',
  47. MessageHttpController.deleteMessage
  48. )
  49. app.post(
  50. '/project/:projectId/thread/:threadId/resolve',
  51. MessageHttpController.resolveThread
  52. )
  53. app.post(
  54. '/project/:projectId/thread/:threadId/reopen',
  55. MessageHttpController.reopenThread
  56. )
  57. app.delete(
  58. '/project/:projectId/thread/:threadId',
  59. MessageHttpController.deleteThread
  60. )
  61. app.delete('/project/:projectId', MessageHttpController.destroyProject)
  62. app.get('/status', (req, res, next) => res.send('chat is alive'))
  63. },
  64. }