@@ -15,7 +15,7 @@ export default {
1515 name : "New Email Received" ,
1616 description : "Emit new event when a new email is received." ,
1717 type : "source" ,
18- version : "0.1.5 " ,
18+ version : "0.1.6 " ,
1919 dedupe : "unique" ,
2020 props : {
2121 gmail,
@@ -383,6 +383,20 @@ export default {
383383 )
384384 : history . filter ( ( item ) => item . messagesAdded ?. length ) ;
385385 } ,
386+ async getMessageDetails ( ids ) {
387+ const messages = await Promise . all ( ids . map ( async ( id ) => {
388+ try {
389+ const message = await this . gmail . getMessage ( {
390+ id,
391+ } ) ;
392+ return message ;
393+ } catch {
394+ console . log ( `Could not find message ${ id } ` ) ;
395+ return null ;
396+ }
397+ } ) ) ;
398+ return messages ;
399+ } ,
386400 } ,
387401 async run ( event ) {
388402 if ( this . triggerType === "polling" ) {
@@ -464,7 +478,7 @@ export default {
464478
465479 // Fetch full message details for new messages
466480 const newMessageIds = newMessages ?. map ( ( { id } ) => id ) || [ ] ;
467- const messageDetails = await this . gmail . getMessages ( newMessageIds ) ;
481+ const messageDetails = await this . getMessageDetails ( newMessageIds ) ;
468482
469483 if ( ! messageDetails ?. length ) {
470484 return ;
@@ -477,7 +491,11 @@ export default {
477491 this . _setLastProcessedHistoryId ( latestHistoryId ) ;
478492 console . log ( "Updated lastProcessedHistoryId:" , latestHistoryId ) ;
479493
480- messageDetails . forEach ( ( message ) => this . emitEvent ( message ) ) ;
494+ messageDetails . forEach ( ( message ) => {
495+ if ( message ?. id ) {
496+ this . emitEvent ( message ) ;
497+ }
498+ } ) ;
481499 }
482500 } ,
483501} ;
0 commit comments