Skip to content

Instantly share code, notes, and snippets.

@joetemp
Created June 8, 2016 05:48
Show Gist options
  • Save joetemp/5a4bb05c33a741768927733b0ca782e8 to your computer and use it in GitHub Desktop.
Save joetemp/5a4bb05c33a741768927733b0ca782e8 to your computer and use it in GitHub Desktop.
module.exports = function (API_KEY, deals, activities, app, type, pbl, address, test){
const request = require('request-promise');
const moment = require('moment');
moment().format();
var soon = {};
var soonPart = {};
var later = {};
var laterPart = {};
var have = {};
deals.map(function(deal) {
if (deal.stage_id === app && deal[type.key] === type.refi ||
deal.stage_id === app && deal[type.key] === type.purchase && deal[pbl.key] === pbl.no) {
soon[deal.id] = deal;
} else if (deal.stage_id === app && deal[type.key] === type.purchase && deal[pbl.key] === pbl.yes && deal[address.key] === '' ||
deal.stage_id === app && deal[type.key] === type.purchase && deal[pbl.key] === pbl.yes && deal[address.key] === null) {
later[deal.id] = deal;
}
});
activities.map(function(activity) {
if (activity.subject === 'W-2') {
var dealID = activity.deal_id.toString();
var personID = activity.person_id.toString();
var cat = dealID + personID;
console.log(cat);
have[cat] = activity;
}
});
console.log('Here are the people who already have a W-2 activity:');
console.log(Object.keys(have));
var soonArr = (Object.keys(soon)).map(function(deal) {
return Number(deal);
});
console.log('Here are the deals that could potentially need a W-2 soon:');
console.log(soonArr);
function getIt(url) {
return request(url).then(function(body) {
return JSON.parse(body).data;
});
}
return Promise.all([]).then(function() {
var promises = soonArr.map(function(deal) {
var url = 'https://api.pipedrive.com/v1/deals/' + deal + '/participants?start=0&api_token=' + API_KEY;
return Promise.all([getIt(url)]).then(function(results){
results[0].map(function(part){
if (part.person[test.key] === '14') {
var relatedItemID = part.related_item_id.toString();
var personID = part.person.id.toString();
var cat = relatedItemID + personID;
soonPart[cat] = part;
}
});
});
});
return Promise.all(promises);
}).then(function() {
console.log('Here are the people associated with those deals that are EMPLOYED:');
console.log(Object.keys(soonPart));
var soonQueue = Object.keys(soonPart).filter(function(part) {
return Object.keys(have).indexOf(part) === -1;
});
console.log('Here is the soon queue:');
console.log(soonQueue);
soonQueue.map(function(cat){
request.post('https://api.pipedrive.com/v1/activities?api_token=' + API_KEY, {
form: {'subject': 'W-2',
'deal_id': soonPart[cat].related_item_id,
'person_id': soonPart[cat].person.id,
'type' : 'task',
'note' : 'Sign and scan 1003 for ' + soonPart[cat].person_id.name + '.',
'due_date' : moment().add(3, 'days').format('YYYY-MM-DD')}});
});
}).then(function() {
console.log("Do moar shit heeeeaaaaare!!!");
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment