overleaf/services/web/app/coffee/Features/Contacts/ContactManager.coffee

39 lines
No EOL
1.3 KiB
CoffeeScript

request = require "request"
settings = require "settings-sharelatex"
logger = require "logger-sharelatex"
module.exports = ContactManager =
getContactIds: (user_id, options = { limits: 50 }, callback = (error, contacts) ->) ->
logger.log {user_id}, "getting user contacts"
url = "#{settings.apis.contacts.url}/user/#{user_id}/contacts"
request.get {
url: url
qs: options
json: true
jar: false
}, (error, res, data) ->
return callback(error) if error?
if 200 <= res.statusCode < 300
callback(null, data?.contact_ids or [])
else
error = new Error("contacts api responded with non-success code: #{res.statusCode}")
logger.error {err: error, user_id}, "error getting contacts for user"
callback(error)
addContact: (user_id, contact_id, callback = (error) ->) ->
logger.log {user_id, contact_id}, "add user contact"
url = "#{settings.apis.contacts.url}/user/#{user_id}/contacts"
request.post {
url: url
json: {
contact_id: contact_id
}
jar: false
}, (error, res, data) ->
return callback(error) if error?
if 200 <= res.statusCode < 300
callback(null, data?.contact_ids or [])
else
error = new Error("contacts api responded with non-success code: #{res.statusCode}")
logger.error {err: error, user_id, contact_id}, "error adding contact for user"
callback(error)