overleaf/services/contacts/app/js/HttpController.js

49 lines
1.2 KiB
JavaScript
Raw Normal View History

import logger from '@overleaf/logger'
import * as ContactManager from './ContactManager.js'
import { buildContactIds } from './contacts.js'
const CONTACT_LIMIT = 50
export function addContact(req, res, next) {
const { user_id: userId } = req.params
const { contact_id: contactId } = req.body
if (contactId == null || contactId === '') {
res.status(400).send('contact_id should be a non-blank string')
return
}
logger.debug({ user_id: userId, contact_id: contactId }, 'adding contact')
Promise.all([
ContactManager.touchContact(userId, contactId),
ContactManager.touchContact(contactId, userId),
])
.then(() => {
res.sendStatus(204)
})
.catch(error => {
next(error)
})
}
export function getContacts(req, res, next) {
const { user_id: userId } = req.params
const { limit } = req.query
const contactLimit =
limit == null ? CONTACT_LIMIT : Math.min(parseInt(limit, 10), CONTACT_LIMIT)
logger.debug({ user_id: userId }, 'getting contacts')
ContactManager.getContacts(userId)
.then(contacts => {
res.json({
contact_ids: buildContactIds(contacts, contactLimit),
})
})
.catch(error => {
next(error)
})
}