| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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')
- )
- },
- }
|