projects.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. 'use strict'
  2. const express = require('express')
  3. const router = express.Router()
  4. const { getAuthHandlers } = require('../middleware/security')
  5. const projectsController = require('../controllers/projects')
  6. const {
  7. basic: handleBasicAuth,
  8. jwt: handleJWTAuth,
  9. token: handleTokenAuth,
  10. either: handleJWTOrTokenAuth,
  11. } = getAuthHandlers()
  12. router.post('/projects', handleBasicAuth, projectsController.initializeProject)
  13. router.post(
  14. '/projects/:project_id/clone',
  15. handleBasicAuth,
  16. projectsController.cloneProject
  17. )
  18. router.post(
  19. '/projects/blob-stats',
  20. handleBasicAuth,
  21. projectsController.getProjectBlobsStats
  22. )
  23. router.post(
  24. '/projects/:project_id/blob-stats',
  25. handleBasicAuth,
  26. projectsController.getBlobStats
  27. )
  28. router.delete(
  29. '/projects/:project_id',
  30. handleBasicAuth,
  31. projectsController.deleteProject
  32. )
  33. router.get(
  34. '/projects/:project_id/blobs/:hash',
  35. handleJWTOrTokenAuth,
  36. projectsController.getProjectBlob
  37. )
  38. router.put(
  39. '/projects/:project_id/blobs/:hash',
  40. handleJWTAuth,
  41. projectsController.createProjectBlob
  42. )
  43. router.post(
  44. '/projects/:project_id/blobs/:hash',
  45. handleJWTAuth,
  46. projectsController.copyProjectBlob
  47. )
  48. router.get(
  49. '/projects/:project_id/latest/content',
  50. handleJWTAuth,
  51. projectsController.getLatestContent
  52. )
  53. router.get(
  54. '/projects/:project_id/latest/hashed_content',
  55. handleBasicAuth,
  56. projectsController.getLatestHashedContent
  57. )
  58. router.get(
  59. '/projects/:project_id/latest/history',
  60. handleJWTAuth,
  61. projectsController.getLatestHistory
  62. )
  63. router.get(
  64. '/projects/:project_id/latest/history/raw',
  65. handleJWTAuth,
  66. projectsController.getLatestHistoryRaw
  67. )
  68. router.get(
  69. '/projects/:project_id/latest/persistedHistory',
  70. handleJWTAuth,
  71. projectsController.getLatestPersistedHistory
  72. )
  73. router.get(
  74. '/projects/:project_id/versions/:version/history',
  75. handleJWTAuth,
  76. projectsController.getHistory
  77. )
  78. router.get(
  79. '/projects/:project_id/versions/:version/content',
  80. handleJWTAuth,
  81. projectsController.getContentAtVersion
  82. )
  83. router.get(
  84. '/projects/:project_id/timestamp/:timestamp/history',
  85. handleJWTAuth,
  86. projectsController.getHistoryBefore
  87. )
  88. router.get(
  89. '/projects/:project_id/latest/zip',
  90. handleTokenAuth,
  91. projectsController.getLatestZip
  92. )
  93. router.get(
  94. '/projects/:project_id/version/:version/zip',
  95. handleTokenAuth,
  96. projectsController.getZip
  97. )
  98. router.post(
  99. '/projects/:project_id/version/:version/zip',
  100. handleBasicAuth,
  101. projectsController.createZip
  102. )
  103. router.get(
  104. '/projects/:project_id/changes',
  105. handleBasicAuth,
  106. projectsController.getChanges
  107. )
  108. module.exports = router