Skip to content

Instantly share code, notes, and snippets.

@unity
Last active June 1, 2018 18:55
Show Gist options
  • Save unity/03d96d0e08ff18ef5eaa05a521454964 to your computer and use it in GitHub Desktop.
Save unity/03d96d0e08ff18ef5eaa05a521454964 to your computer and use it in GitHub Desktop.
// Check if they have a Twitter handle
const { twitter_handle } = user.clearbit || {};
const { fetched_at } = user.social_profiles || {};
if (fetched_at || !twitter_handle) return true;
const fetched_at = new Date().toISOString();
hull.traits({ fetched_at }, { source: 'social_profiles' });
const unlessError = callback => (error, response) => {
if (!error && response.statusCode === 200) callback();
};
// Check ProductHunt, Inbound.org, GrowthHackers, HackerNews for matching handles
return Promise.all([
new Promise((resolve, reject) => {
request(`https://inbound.org/in/${twitter_handle}`, (error, response) => {
unlessError(error, response, () =>
hull.traits(
{ inboundorg: twitter_handle },
{ source: 'social_profiles' }
)
);
resolve(true);
});
}),
new Promise((resolve, reject) => {
request(
`https://growthhackers.com/members/${twitter_handle}`,
(error, response) => {
unlessError(error, response, () =>
hull.traits(
{ growthhackers: twitter_handle },
{ source: 'social_profiles' }
)
);
resolve(true);
}
);
}),
new Promise((resolve, reject) => {
request(
`https://news.ycombinator.com/user?id=${twitter_handle}`,
(error, response) => {
unlessError(error, response, () =>
hull.traits(
{ hackernews: twitter_handle },
{ source: 'social_profiles' }
)
);
resolve(true);
}
);
})
]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment