SubscriptionRouter.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. /* eslint-disable
  2. max-len,
  3. */
  4. // TODO: This file was created by bulk-decaffeinate.
  5. // Fix any style issues and re-enable lint.
  6. /*
  7. * decaffeinate suggestions:
  8. * DS102: Remove unnecessary code created because of implicit returns
  9. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  10. */
  11. const AuthenticationController = require('../Authentication/AuthenticationController')
  12. const SubscriptionController = require('./SubscriptionController')
  13. const SubscriptionGroupController = require('./SubscriptionGroupController')
  14. const TeamInvitesController = require('./TeamInvitesController')
  15. const RateLimiterMiddleware = require('../Security/RateLimiterMiddleware')
  16. const Settings = require('settings-sharelatex')
  17. module.exports = {
  18. apply(webRouter, privateApiRouter, publicApiRouter) {
  19. if (!Settings.enableSubscriptions) {
  20. return
  21. }
  22. webRouter.get('/user/subscription/plans', SubscriptionController.plansPage)
  23. webRouter.get(
  24. '/user/subscription',
  25. AuthenticationController.requireLogin(),
  26. SubscriptionController.userSubscriptionPage
  27. )
  28. webRouter.get(
  29. '/user/subscription/new',
  30. AuthenticationController.requireLogin(),
  31. SubscriptionController.paymentPage
  32. )
  33. webRouter.get(
  34. '/user/subscription/thank-you',
  35. AuthenticationController.requireLogin(),
  36. SubscriptionController.successful_subscription
  37. )
  38. webRouter.get(
  39. '/user/subscription/canceled',
  40. AuthenticationController.requireLogin(),
  41. SubscriptionController.canceledSubscription
  42. )
  43. webRouter.get(
  44. '/subscription/group',
  45. AuthenticationController.requireLogin(),
  46. SubscriptionGroupController.redirectToSubscriptionGroupAdminPage
  47. )
  48. webRouter.delete(
  49. '/subscription/group/user',
  50. AuthenticationController.requireLogin(),
  51. SubscriptionGroupController.removeSelfFromGroup
  52. )
  53. // Team invites
  54. webRouter.get(
  55. '/subscription/invites/:token/',
  56. AuthenticationController.requireLogin(),
  57. TeamInvitesController.viewInvite
  58. )
  59. webRouter.put(
  60. '/subscription/invites/:token/',
  61. AuthenticationController.requireLogin(),
  62. RateLimiterMiddleware.rateLimit({
  63. endpointName: 'team-invite',
  64. maxRequests: 10,
  65. timeInterval: 60
  66. }),
  67. TeamInvitesController.acceptInvite
  68. )
  69. // recurly callback
  70. publicApiRouter.post(
  71. '/user/subscription/callback',
  72. SubscriptionController.recurlyNotificationParser,
  73. SubscriptionController.recurlyCallback
  74. )
  75. // user changes their account state
  76. webRouter.post(
  77. '/user/subscription/create',
  78. AuthenticationController.requireLogin(),
  79. SubscriptionController.createSubscription
  80. )
  81. webRouter.post(
  82. '/user/subscription/update',
  83. AuthenticationController.requireLogin(),
  84. SubscriptionController.updateSubscription
  85. )
  86. webRouter.post(
  87. '/user/subscription/cancel',
  88. AuthenticationController.requireLogin(),
  89. SubscriptionController.cancelSubscription
  90. )
  91. webRouter.post(
  92. '/user/subscription/reactivate',
  93. AuthenticationController.requireLogin(),
  94. SubscriptionController.reactivateSubscription
  95. )
  96. webRouter.post(
  97. '/user/subscription/v1/cancel',
  98. AuthenticationController.requireLogin(),
  99. SubscriptionController.cancelV1Subscription
  100. )
  101. webRouter.put(
  102. '/user/subscription/extend',
  103. AuthenticationController.requireLogin(),
  104. SubscriptionController.extendTrial
  105. )
  106. webRouter.get(
  107. '/user/subscription/upgrade-annual',
  108. AuthenticationController.requireLogin(),
  109. SubscriptionController.renderUpgradeToAnnualPlanPage
  110. )
  111. webRouter.post(
  112. '/user/subscription/upgrade-annual',
  113. AuthenticationController.requireLogin(),
  114. SubscriptionController.processUpgradeToAnnualPlan
  115. )
  116. webRouter.post(
  117. '/user/subscription/account/email',
  118. AuthenticationController.requireLogin(),
  119. SubscriptionController.updateAccountEmailAddress
  120. )
  121. // Currently used in acceptance tests only, as a way to trigger the syncing logic
  122. return publicApiRouter.post(
  123. '/user/:user_id/features/sync',
  124. AuthenticationController.httpAuth,
  125. SubscriptionController.refreshUserFeatures
  126. )
  127. }
  128. }