AnalyticsManager.coffee 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. settings = require "settings-sharelatex"
  2. logger = require "logger-sharelatex"
  3. _ = require "underscore"
  4. request = require "request"
  5. Errors = require '../Errors/Errors'
  6. makeRequest = (opts, callback)->
  7. if settings.apis?.analytics?.url?
  8. urlPath = opts.url
  9. opts.url = "#{settings.apis.analytics.url}#{urlPath}"
  10. request opts, callback
  11. else
  12. callback(new Errors.ServiceNotConfiguredError('Analytics service not configured'))
  13. module.exports =
  14. recordEvent: (user_id, event, segmentation = {}, callback = (error) ->) ->
  15. if user_id+"" == settings.smokeTest?.userId+""
  16. return callback()
  17. opts =
  18. body:
  19. event:event
  20. segmentation:segmentation
  21. json:true
  22. method:"POST"
  23. timeout:1000
  24. url: "/user/#{user_id}/event"
  25. makeRequest opts, callback
  26. getLastOccurance: (user_id, event, callback = (error) ->) ->
  27. opts =
  28. body:
  29. event:event
  30. json:true
  31. method:"POST"
  32. timeout:1000
  33. url: "/user/#{user_id}/event/last_occurnace"
  34. makeRequest opts, (err, response, body)->
  35. if err?
  36. console.log response, opts
  37. logger.err {user_id, err}, "error getting last occurance of event"
  38. return callback err
  39. else
  40. return callback null, body