Skip to content

Instantly share code, notes, and snippets.

@tracker1
Forked from joetemp/newW2.js
Last active June 8, 2016 06:39
Show Gist options
  • Select an option

  • Save tracker1/65a0e62c4aedc742685b6d42390a12d7 to your computer and use it in GitHub Desktop.

Select an option

Save tracker1/65a0e62c4aedc742685b6d42390a12d7 to your computer and use it in GitHub Desktop.
const request = require('request-promise');
const moment = require('moment');
module.exports = function (API_KEY, deals, activities, app, type, pbl, address, test){
//moment().format();
var soonPart = {};
var laterPart = {};
let soon = deals.filter(deal => (
deal.stage_id === app && deal[type.key] === type.refi ||
deal.stage_id === app && deal[type.key] === type.purchase && deal[pbl.key] === pbl.no
)).reduce((obj, deal) => { ...obj, [deal.id]:deal });
let later = deals.filter(deal => (
!soon[deal.id] && (
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
)
)).reduce((obj, deal) => { ...obj, [deal.id]:deal });
let have = activities.filter(a => a.subject === 'W-2')
.reduce((obj, a) => { ...obj, [`${a.deal_id}${deal.person_id}`]: a });
console.log('Here are the people who already have a W-2 activity:');
console.log(Object.keys(have));
let soonArr = Object.keys(soon).map(d => +d);
console.log('Here are the deals that could potentially need a W-2 soon:');
console.log(soonArr);
const getId = url => request(url).then(b => JSON.parse(b).data)
Promise.all(soonArr.map(d => getId(`https://api.pipedrive.com/v1/deals/${d}/participants?start=0&api_token=${API_KEY}`)))
.then(results => results.reduce((obj, part) => { ...obj, [`${part.related_item_id}${part.person.id}`]:part }, {}))
.then(soonPart => {
console.log('Here are the people associated with those deals that are EMPLOYED:');
console.log(Object.keys(soonPart));
let soonQueue = Object.keys(soonPart).filter(part => Object.keys(have).indexOf(part) === -1);
console.log('Here is the soon queue:');
console.log(soonQueue);
return Promise.all(soonQueue.map(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