@@ -39,30 +39,50 @@ const getPostsByMention = async (
3939 try {
4040 const response = await axios ( config )
4141
42- const posts = response . data . data
43- const media = response . data . includes . media
44- const users = response . data . includes . users
42+ let limit : number
43+ let timeUntilReset : number
44+ if ( response . headers [ 'x-rate-limit-remaining' ] && response . headers [ 'x-rate-limit-reset' ] ) {
45+ limit = parseInt ( response . headers [ 'x-rate-limit-remaining' ] , 10 )
46+ const resetTs = parseInt ( response . headers [ 'x-rate-limit-reset' ] , 10 ) * 1000
47+ timeUntilReset = moment ( resetTs ) . diff ( moment ( ) , 'seconds' )
48+ } else {
49+ limit = 0
50+ timeUntilReset = 0
51+ }
52+
53+ if (
54+ response . data . meta &&
55+ response . data . meta . result_count &&
56+ response . data . meta . result_count > 0
57+ ) {
58+ const posts = response . data . data
59+ const media = response . data . includes . media
60+ const users = response . data . includes . users
4561
46- const postsOut : TwitterParsedPosts = [ ]
62+ const postsOut : TwitterParsedPosts = [ ]
4763
48- for ( const post of posts ) {
49- if ( post . attachments ?. media_keys ) {
50- const computedMedia = post . attachments . media_keys . map ( ( key ) =>
51- media . find ( ( m ) => m . media_key === key ) ,
52- )
53- post . attachments = computedMedia
64+ for ( const post of posts ) {
65+ if ( post . attachments ?. media_keys ) {
66+ const computedMedia = post . attachments . media_keys . map ( ( key ) =>
67+ media . find ( ( m ) => m . media_key === key ) ,
68+ )
69+ post . attachments = computedMedia
70+ }
71+ const member = users . find ( ( u ) => u . id === post . author_id )
72+ post . member = member
73+ postsOut . push ( post )
5474 }
55- const member = users . find ( ( u ) => u . id === post . author_id )
56- post . member = member
57- postsOut . push ( post )
58- }
5975
60- const limit = parseInt ( response . headers [ 'x-rate-limit-remaining' ] , 10 )
61- const resetTs = parseInt ( response . headers [ 'x-rate-limit-reset' ] , 10 ) * 1000
62- const timeUntilReset = moment ( resetTs ) . diff ( moment ( ) , 'seconds' )
76+ return {
77+ records : postsOut ,
78+ nextPage : response . data ?. meta ?. next_token || '' ,
79+ limit,
80+ timeUntilReset,
81+ }
82+ }
6383 return {
64- records : postsOut ,
65- nextPage : response . data ?. meta ?. next_token || '' ,
84+ records : [ ] ,
85+ nextPage : '' ,
6686 limit,
6787 timeUntilReset,
6888 }
0 commit comments