overleaf/services/web/app/coffee/Features/Dropbox/DropboxWebhookHandler.coffee

25 lines
828 B
CoffeeScript
Raw Normal View History

2014-08-13 12:26:18 -04:00
logger = require("logger-sharelatex")
async = require "async"
User = require("../../models/User").User
TpdsUpdateSender = require "../ThirdPartyDataStore/TpdsUpdateSender"
module.exports = DropboxWebhookHandler =
pollDropboxUids: (dropbox_uids, callback = (error) ->) ->
jobs = []
for uid in dropbox_uids
do (uid) ->
jobs.push (callback) ->
DropboxWebhookHandler.pollDropboxUid uid, callback
async.series jobs, callback
pollDropboxUid: (dropbox_uid, callback = (error) ->) ->
User.find {
"dropbox.access_token.uid": dropbox_uid
"features.dropbox": true
}, (error, users = []) ->
return callback(error) if error?
user = users[0]
if !user?
logger.log dropbox_uid: dropbox_uid, "no sharelatex user found"
return callback()
TpdsUpdateSender.pollDropboxForUser user._id, callback