Esempio n. 1
0
File: api.js Progetto: Firfi/yodesk
 q.all(_.map(_.range(Math.floor(MAX_JOBS/ONPAGE)), function(n) {
     var d = q.defer();
     o.get('profiles/v2/search/jobs.json', {q: QUERY, paging: paging(n)}, function(error, data) {
       return error ? d.reject(error) : d.resolve(data.jobs);
     });
     return d.promise;
   })).then(function(results) {
Esempio n. 2
0
File: api.js Progetto: Firfi/yodesk
var poll = function(n) {
  if (n === undefined) n = 0;

  var addedJobs = function(jbs) {
    var added = [];
    var intersects = false;
    jbs.reverse().forEach(function(j) {
      if (!existingJobs[j.id]) {
        added.push(j);
      } else {
        intersects = true;
      }
    });
    return [added.reverse(), intersects];
  };

  o.get('profiles/v2/search/jobs.json', {q: QUERY, paging: paging(n)}, function(error, data) {
    if (error) {
      console.error(error);
      setTimeout(poll, POLLING_INTERVAL);
    } else {
      var addedAndIntersects = addedJobs(data.jobs);
      var added = addedAndIntersects[0];
      var intersects = addedAndIntersects[1];
      if (!intersects) {
        console.error('not intersects', n+1);
        poll(n+1);
      } else {
        if (added.length > 0) jobsEmitter.emit('added', added);
        setTimeout(poll, POLLING_INTERVAL);
      }
    }
  });
};