Files
overleaf-cep/services/web/app/src/Features/Analytics/AnalyticsRouter.js
T
June Kelly 4e11fa73cb Merge pull request #7106 from overleaf/ab-analytics-controller-async
Convert AnalyticsController to async/await

GitOrigin-RevId: a38194b2970a15b06fe6a3d95048681d7927bfc3
2022-03-24 14:58:47 +00:00

42 lines
1.3 KiB
JavaScript

const AuthenticationController = require('./../Authentication/AuthenticationController')
const AnalyticsController = require('./AnalyticsController')
const AnalyticsProxy = require('./AnalyticsProxy')
const RateLimiterMiddleware = require('./../Security/RateLimiterMiddleware')
const { expressify } = require('../../util/promises')
module.exports = {
apply(webRouter, privateApiRouter, publicApiRouter) {
webRouter.post(
'/event/:event([a-z0-9-_]+)',
RateLimiterMiddleware.rateLimit({
endpointName: 'analytics-record-event',
maxRequests: 200,
timeInterval: 60,
}),
AnalyticsController.recordEvent
)
webRouter.put(
'/editingSession/:projectId',
RateLimiterMiddleware.rateLimit({
endpointName: 'analytics-update-editing-session',
params: ['projectId'],
maxRequests: 20,
timeInterval: 60,
}),
expressify(AnalyticsController.updateEditingSession)
)
publicApiRouter.use(
'/analytics/uniExternalCollaboration',
AuthenticationController.requirePrivateApiAuth(),
RateLimiterMiddleware.rateLimit({
endpointName: 'analytics-uni-external-collab-proxy',
maxRequests: 20,
timeInterval: 60,
}),
AnalyticsProxy.call('/uniExternalCollaboration')
)
},
}