Router.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import * as HttpController from './HttpController.js'
  2. export function initialize(app) {
  3. // use an extended timeout on all endpoints, to allow for long requests to history-v1
  4. app.use(longerTimeout)
  5. app.post('/project', HttpController.initializeProject)
  6. app.delete('/project/:project_id', HttpController.deleteProject)
  7. app.get('/project/:project_id/snapshot', HttpController.getLatestSnapshot)
  8. app.get('/project/:project_id/diff', HttpController.getDiff)
  9. app.get('/project/:project_id/filetree/diff', HttpController.getFileTreeDiff)
  10. app.get('/project/:project_id/updates', HttpController.getUpdates)
  11. app.get(
  12. '/project/:project_id/changes-in-chunk',
  13. HttpController.getChangesInChunkSince
  14. )
  15. app.get('/project/:project_id/version', HttpController.latestVersion)
  16. app.post('/project/:project_id/flush', HttpController.flushProject)
  17. app.post('/project/:project_id/resync', HttpController.resyncProject)
  18. app.get('/project/:project_id/dump', HttpController.dumpProject)
  19. app.get('/project/:project_id/labels', HttpController.getLabels)
  20. app.post('/project/:project_id/labels', HttpController.createLabel)
  21. app.delete(
  22. '/project/:project_id/user/:user_id/labels/:label_id',
  23. HttpController.deleteLabelForUser
  24. )
  25. app.delete(
  26. '/project/:project_id/labels/:label_id',
  27. HttpController.deleteLabel
  28. )
  29. app.post(
  30. '/user/:from_user/labels/transfer/:to_user',
  31. HttpController.transferLabels
  32. )
  33. app.get(
  34. '/project/:project_id/version/:version/:pathname',
  35. HttpController.getFileSnapshot
  36. )
  37. app.get(
  38. '/project/:project_id/ranges/version/:version/:pathname',
  39. HttpController.getRangesSnapshot
  40. )
  41. app.get(
  42. '/project/:project_id/metadata/version/:version/:pathname',
  43. HttpController.getFileMetadataSnapshot
  44. )
  45. app.get(
  46. '/project/:project_id/version/:version',
  47. HttpController.getProjectSnapshot
  48. )
  49. app.get(
  50. '/project/:project_id/paths/version/:version',
  51. HttpController.getPathsAtVersion
  52. )
  53. app.post('/project/:project_id/force', HttpController.forceDebugProject)
  54. app.get('/project/:history_id/blob/:hash', HttpController.getProjectBlob)
  55. app.get('/status/failures', HttpController.getFailures)
  56. app.get('/status/queue', HttpController.getQueueCounts)
  57. app.post('/retry/failures', HttpController.retryFailures)
  58. app.post('/flush/old', HttpController.flushOld)
  59. app.get('/status', (req, res, next) => res.send('project-history is up'))
  60. app.get('/check_lock', HttpController.checkLock)
  61. app.get('/health_check', HttpController.healthCheck)
  62. }
  63. function longerTimeout(req, res, next) {
  64. res.setTimeout(6 * 60 * 1000)
  65. next()
  66. }