DropboxWebhookController.coffee 730 B

123456789101112131415161718192021
  1. logger = require("logger-sharelatex")
  2. DropboxWebhookHandler = require("./DropboxWebhookHandler")
  3. module.exports = DropboxWebhookController =
  4. verify: (req, res, next = (error) ->) ->
  5. res.send(req.query.challenge)
  6. req.session.destroy()
  7. webhook: (req, res, next = (error) ->) ->
  8. dropbox_uids = req.body?.delta?.users
  9. logger.log dropbox_uids: dropbox_uids, "received webhook request from Dropbox"
  10. if !dropbox_uids?
  11. return res.send(400) # Bad Request
  12. # Do this in the background so as not to keep Dropbox waiting
  13. DropboxWebhookHandler.pollDropboxUids dropbox_uids, (error) ->
  14. if error?
  15. logger.error err: error, dropbox_uids: dropbox_uids, "error in webhook"
  16. res.send(200)
  17. req.session.destroy()