SubscriptionRouter.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  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('@overleaf/settings')
  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.successfulSubscription
  37. )
  38. webRouter.get(
  39. '/user/subscription/canceled',
  40. AuthenticationController.requireLogin(),
  41. SubscriptionController.canceledSubscription
  42. )
  43. webRouter.get(
  44. '/user/subscription/recurly/:pageType',
  45. AuthenticationController.requireLogin(),
  46. SubscriptionController.redirectToHostedPage
  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. AuthenticationController.requireBasicAuth({
  73. [Settings.apis.recurly.webhookUser]: Settings.apis.recurly.webhookPass,
  74. }),
  75. SubscriptionController.recurlyNotificationParser,
  76. SubscriptionController.recurlyCallback
  77. )
  78. // user changes their account state
  79. webRouter.post(
  80. '/user/subscription/create',
  81. AuthenticationController.requireLogin(),
  82. SubscriptionController.createSubscription
  83. )
  84. webRouter.post(
  85. '/user/subscription/update',
  86. AuthenticationController.requireLogin(),
  87. SubscriptionController.updateSubscription
  88. )
  89. webRouter.post(
  90. '/user/subscription/cancel-pending',
  91. AuthenticationController.requireLogin(),
  92. SubscriptionController.cancelPendingSubscriptionChange
  93. )
  94. webRouter.post(
  95. '/user/subscription/cancel',
  96. AuthenticationController.requireLogin(),
  97. SubscriptionController.cancelSubscription
  98. )
  99. webRouter.post(
  100. '/user/subscription/reactivate',
  101. AuthenticationController.requireLogin(),
  102. SubscriptionController.reactivateSubscription
  103. )
  104. webRouter.post(
  105. '/user/subscription/v1/cancel',
  106. AuthenticationController.requireLogin(),
  107. SubscriptionController.cancelV1Subscription
  108. )
  109. webRouter.put(
  110. '/user/subscription/extend',
  111. AuthenticationController.requireLogin(),
  112. SubscriptionController.extendTrial
  113. )
  114. webRouter.get(
  115. '/user/subscription/upgrade-annual',
  116. AuthenticationController.requireLogin(),
  117. SubscriptionController.renderUpgradeToAnnualPlanPage
  118. )
  119. webRouter.post(
  120. '/user/subscription/upgrade-annual',
  121. AuthenticationController.requireLogin(),
  122. SubscriptionController.processUpgradeToAnnualPlan
  123. )
  124. webRouter.post(
  125. '/user/subscription/account/email',
  126. AuthenticationController.requireLogin(),
  127. SubscriptionController.updateAccountEmailAddress
  128. )
  129. },
  130. }