Files
Verso/services/web/app/src/Features/Templates/TemplatesRouter.js
T
Eric Mc Sween 75abea72b0 Merge pull request #11492 from overleaf/em-rate-limiter
Move all remaining rate limiters to rate-limiter-flexible

GitOrigin-RevId: 163ab2aebecb281057e552dc75591dd02028990c
2023-01-31 09:03:44 +00:00

36 lines
1.2 KiB
JavaScript

const AuthenticationController = require('../Authentication/AuthenticationController')
const TemplatesController = require('./TemplatesController')
const TemplatesMiddleware = require('./TemplatesMiddleware')
const { RateLimiter } = require('../../infrastructure/RateLimiter')
const RateLimiterMiddleware = require('../Security/RateLimiterMiddleware')
const AnalyticsRegistrationSourceMiddleware = require('../Analytics/AnalyticsRegistrationSourceMiddleware')
const rateLimiter = new RateLimiter('create-project-from-template', {
points: 20,
duration: 60,
})
module.exports = {
apply(app) {
app.get(
'/project/new/template/:Template_version_id',
(req, res, next) =>
AnalyticsRegistrationSourceMiddleware.setSource(
'template',
req.params.Template_version_id
)(req, res, next),
TemplatesMiddleware.saveTemplateDataInSession,
AuthenticationController.requireLogin(),
TemplatesController.getV1Template,
AnalyticsRegistrationSourceMiddleware.clearSource()
)
app.post(
'/project/new/template',
AuthenticationController.requireLogin(),
RateLimiterMiddleware.rateLimit(rateLimiter),
TemplatesController.createProjectFromV1Template
)
},
}