@@ -31,6 +31,7 @@ const FIELD__LINK_ATTACHMENT_URL = 'link_attachment_url';
3131const FIELD__MEDIA_TYPE = 'media_type' ;
3232const FIELD__MEDIA_URL = 'media_url' ;
3333const FIELD__PERMALINK = 'permalink' ;
34+ const FIELD__POLL_ATTACHMENT = 'poll_attachment' ;
3435const FIELD__REPLIES = 'replies' ;
3536const FIELD__REPOSTS = 'reposts' ;
3637const FIELD__QUOTES = 'quotes' ;
@@ -56,6 +57,7 @@ const PARAMS__FIELDS = 'fields';
5657const PARAMS__HIDE = 'hide' ;
5758const PARAMS__LINK_ATTACHMENT = 'link_attachment' ;
5859const PARAMS__METRIC = 'metric' ;
60+ const PARAMS__POLL_ATTACHMENT = 'poll_attachment' ;
5961const PARAMS__Q = 'q' ;
6062const PARAMS__QUOTA_USAGE = 'quota_usage' ;
6163const PARAMS__QUOTE_POST_ID = 'quote_post_id' ;
@@ -333,14 +335,38 @@ app.post('/repost', upload.array(), async (req, res) => {
333335} ) ;
334336
335337app . post ( '/upload' , upload . array ( ) , async ( req , res ) => {
336- const { text, attachmentType, attachmentUrl, attachmentAltText, replyControl, replyToId, linkAttachment, quotePostId } = req . body ;
338+ const {
339+ text,
340+ attachmentType,
341+ attachmentUrl,
342+ attachmentAltText,
343+ replyControl,
344+ replyToId,
345+ linkAttachment,
346+ pollOptionA,
347+ pollOptionB,
348+ pollOptionC,
349+ pollOptionD,
350+ quotePostId
351+ } = req . body ;
352+
337353 const params = {
338354 [ PARAMS__TEXT ] : text ,
339355 [ PARAMS__REPLY_CONTROL ] : replyControl ,
340356 [ PARAMS__REPLY_TO_ID ] : replyToId ,
341357 [ PARAMS__LINK_ATTACHMENT ] : linkAttachment ,
342358 } ;
343359
360+ if ( pollOptionA && pollOptionB ) {
361+ const pollAttachment = JSON . stringify ( {
362+ option_a : pollOptionA ,
363+ option_b : pollOptionB ,
364+ option_c : pollOptionC ,
365+ option_d : pollOptionD ,
366+ } ) ;
367+ params [ PARAMS__POLL_ATTACHMENT ] = pollAttachment ;
368+ }
369+
344370 if ( quotePostId ) {
345371 params [ PARAMS__QUOTE_POST_ID ] = quotePostId ;
346372 }
@@ -473,12 +499,21 @@ app.get('/threads/:threadId', loggedInUserChecker, async (req, res) => {
473499 FIELD__REPLY_AUDIENCE ,
474500 FIELD__ALT_TEXT ,
475501 FIELD__LINK_ATTACHMENT_URL ,
502+ FIELD__POLL_ATTACHMENT ,
476503 ] . join ( ',' ) ,
477504 } , req . session . access_token ) ;
478505
479506 try {
480507 const queryResponse = await axios . get ( queryThreadUrl , { httpsAgent : agent } ) ;
481- data = queryResponse . data ;
508+ const { poll_attachment, ...rest } = queryResponse . data ;
509+ data = rest ;
510+
511+ if ( poll_attachment ) {
512+ data = {
513+ ...data ,
514+ ...poll_attachment
515+ } ;
516+ }
482517 } catch ( e ) {
483518 console . error ( e ?. response ?. data ?. error ?. message ?? e . message ) ;
484519 }
0 commit comments