server.js 958 B

123456789101112131415161718192021222324252627282930313233
  1. import * as Metrics from '@overleaf/metrics'
  2. import logger from '@overleaf/logger'
  3. import express from 'express'
  4. import bodyParser from 'body-parser'
  5. import * as HttpController from './HttpController.js'
  6. import * as Errors from './Errors.js'
  7. Metrics.initialize('contacts')
  8. logger.initialize('contacts')
  9. Metrics.event_loop?.monitor(logger)
  10. Metrics.open_sockets.monitor()
  11. export const app = express()
  12. app.use(Metrics.http.monitor(logger))
  13. Metrics.injectMetricsRoute(app)
  14. app.get('/user/:user_id/contacts', HttpController.getContacts)
  15. app.post(
  16. '/user/:user_id/contacts',
  17. bodyParser.json({ limit: '2mb' }),
  18. HttpController.addContact
  19. )
  20. app.get('/status', (req, res) => res.send('contacts is alive'))
  21. app.use(function (error, req, res, next) {
  22. logger.error({ err: error }, 'request errored')
  23. if (error instanceof Errors.NotFoundError) {
  24. return res.sendStatus(404)
  25. } else {
  26. return res.status(500).send('Oops, something went wrong')
  27. }
  28. })