return new Promise<number[]>((resolve, reject) => { this.client.get('blocks/ids', params, (err, data, res) => { if (err) { this.sendApiFailure(err, res); reject(err); return; } log.debug('blocks/ids: Got block ids:', data.ids.length); resolve(data.ids); }); });
return new Promise<number[]>((resolve, reject) => { this.client.get('friendships/no_retweets/ids', params, (err, data, res) => { if (err) { this.sendApiFailure(err, res); reject(err); return; } log.debug('friendships/no_retweets/ids: Got no-retweet ids:', data.length); resolve(data); }); });
return new Promise<Object[]>((resolve, reject) => { this.client.get('statuses/mentions_timeline', params, (err, tweets, res) => { if (err) { this.sendApiFailure(err, res); reject(err); return; } log.debug('statuses/mentions_timeline: Got tweets:', tweets.length); resolve(tweets); }); });
return new Promise<Object[]>((resolve, reject) => { this.client.get('statuses/home_timeline', params, (err, tweets, res) => { if (err) { log.debug('Home timeline failed: ', tweets, res); this.sendApiFailure(err, res); reject(err); return; } log.debug('statuses/home_timeline: Got tweets:', tweets.length); resolve(tweets.reverse()); }); });
return new Promise<void>((resolve, reject) => { this.client.get( 'account/verify_credentials', params, (err, account, res) => { if (err) { log.debug('verify_credentials failed:', err, account, res); err.message += ' Login again.'; this.sendApiFailure(err, res); reject(err); return; } this.sender.send('yf:my-account', account); log.debug('Verified account:', account.id_str, account.screen_name); resolve(); } ); });
export async function getTwitterName(user: User): Promise<string> { const [row] = await db.query('SELECT * FROM manygolf.players WHERE id=$1', [user.id]); const twitterToken = row.twitter_token; const twitterSecret = row.twitter_secret; const twitterId = row.twitter_id; if (!twitterId) { return null; } const twit = new Twit({ consumer_key: process.env.TWITTER_API_KEY, consumer_secret: process.env.TWITTER_API_SECRET, access_token: twitterToken, access_token_secret: twitterSecret, }); const userResource = await twit.get('users/show', {user_id: twitterId} as Twit.Params); const username: string = (userResource.data as any).screen_name; return username; }