ContactManager.coffee 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. request = require "request"
  2. settings = require "settings-sharelatex"
  3. logger = require "logger-sharelatex"
  4. module.exports = ContactManager =
  5. getContactIds: (user_id, options = { limits: 50 }, callback = (error, contacts) ->) ->
  6. logger.log {user_id}, "getting user contacts"
  7. url = "#{settings.apis.contacts.url}/user/#{user_id}/contacts"
  8. request.get {
  9. url: url
  10. qs: options
  11. json: true
  12. jar: false
  13. }, (error, res, data) ->
  14. return callback(error) if error?
  15. if 200 <= res.statusCode < 300
  16. callback(null, data?.contact_ids or [])
  17. else
  18. error = new Error("contacts api responded with non-success code: #{res.statusCode}")
  19. logger.error {err: error, user_id}, "error getting contacts for user"
  20. callback(error)
  21. addContact: (user_id, contact_id, callback = (error) ->) ->
  22. logger.log {user_id, contact_id}, "add user contact"
  23. url = "#{settings.apis.contacts.url}/user/#{user_id}/contacts"
  24. request.post {
  25. url: url
  26. json: {
  27. contact_id: contact_id
  28. }
  29. jar: false
  30. }, (error, res, data) ->
  31. return callback(error) if error?
  32. if 200 <= res.statusCode < 300
  33. callback(null, data?.contact_ids or [])
  34. else
  35. error = new Error("contacts api responded with non-success code: #{res.statusCode}")
  36. logger.error {err: error, user_id, contact_id}, "error adding contact for user"
  37. callback(error)