-
-
Save tracker1/65a0e62c4aedc742685b6d42390a12d7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const request = require('request-promise'); | |
const moment = require('moment'); | |
const getId = url => request(url).then(b => JSON.parse(b).data); | |
function getSoonItems(deal, type) { | |
return 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 }); | |
} | |
function getLaterItems(deal, type, pbl, address, soon) { | |
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 }); | |
} | |
function getHaveItems(activities) { | |
return activities.filter(a => a.subject === 'W-2') | |
.reduce((obj, a) => { ...obj, [`${a.deal_id}${deal.person_id}`]: a }); | |
} | |
export default async function(API_KEY, deals, activities, app, type, pbl, address, test) { | |
try { | |
let soon = getSoonItems(); | |
let later = getLaterItems(deal, type, pbl, address, soon) | |
let have = getHavItems(activities); | |
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 results = await Promise.all(soonArr.map(d => | |
getId(`https://api.pipedrive.com/v1/deals/${d}/participants?start=0&api_token=${API_KEY}`) | |
)); | |
const soonPart = results.reduce((obj, part) => { ...obj, [`${part.related_item_id}${part.person.id}`]:part }, {}); | |
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); | |
await 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')} | |
} | |
))); | |
console.log("Do moar shit heeeeaaaaare!!!"); | |
} catch(err) { | |
console.error('ERROR', err); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment