server.js 927 B

1234567891011121314151617181920212223242526272829303132
  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. logger.initialize('contacts')
  8. Metrics.event_loop?.monitor(logger)
  9. Metrics.open_sockets.monitor()
  10. export const app = express()
  11. app.use(Metrics.http.monitor(logger))
  12. Metrics.injectMetricsRoute(app)
  13. app.get('/user/:user_id/contacts', HttpController.getContacts)
  14. app.post(
  15. '/user/:user_id/contacts',
  16. bodyParser.json({ limit: '2mb' }),
  17. HttpController.addContact
  18. )
  19. app.get('/status', (req, res) => res.send('contacts is alive'))
  20. app.use(function (error, req, res, next) {
  21. logger.error({ err: error }, 'request errored')
  22. if (error instanceof Errors.NotFoundError) {
  23. return res.sendStatus(404)
  24. } else {
  25. return res.status(500).send('Oops, something went wrong')
  26. }
  27. })