@@ -48,9 +48,9 @@ case 'updateMessages':
48
48
✅ listMailboxes
49
49
case 'moveMessage':
50
50
case 'moveMessages':
51
- case ' deleteMessage':
51
+ ✅ deleteMessage (no force option)
52
52
case 'deleteMessages':
53
- case ' getRawMessage':
53
+ ✅ getRawMessage
54
54
case 'getQuota':
55
55
case 'createMailbox':
56
56
case 'renameMailbox':
@@ -59,7 +59,7 @@ case 'deleteMailbox':
59
59
case 'submitMessage':
60
60
case 'queueMessage':
61
61
case 'uploadMessage':
62
- case ' subconnections':
62
+ ✅ subconnections
63
63
64
64
*/
65
65
@@ -488,19 +488,31 @@ class GmailClient {
488
488
489
489
const accessToken = await this . getToken ( ) ;
490
490
491
- const requestQuery = { } ;
492
- const result = await this . oAuth2Client . request (
493
- accessToken ,
494
- `${ GMAIL_API_BASE } /gmail/v1/users/me/messages/${ messageId } ?format=raw` ,
495
- 'get' ,
496
- requestQuery
497
- ) ;
498
-
499
- console . log ( result ) ;
491
+ const requestQuery = {
492
+ format : 'raw'
493
+ } ;
494
+ const result = await this . oAuth2Client . request ( accessToken , `${ GMAIL_API_BASE } /gmail/v1/users/me/messages/${ messageId } ` , 'get' , requestQuery ) ;
500
495
501
496
return result ?. raw ? Buffer . from ( result ?. raw , 'base64url' ) : null ;
502
497
}
503
498
499
+ async deleteMessage ( messageId /*, force*/ ) {
500
+ await this . prepare ( ) ;
501
+
502
+ const accessToken = await this . getToken ( ) ;
503
+
504
+ // Move to trash
505
+ const url = `${ GMAIL_API_BASE } /gmail/v1/users/me/messages/${ messageId } /trash` ;
506
+ const result = await this . oAuth2Client . request ( accessToken , url , 'post' , Buffer . alloc ( 0 ) ) ;
507
+
508
+ return {
509
+ deleted : result && result . labelIds ?. includes ( 'TRASH' ) ,
510
+ moved : {
511
+ message : result . id
512
+ }
513
+ } ;
514
+ }
515
+
504
516
async getAttachmentContent ( attachmentId ) {
505
517
let sepPos = attachmentId . indexOf ( '.' ) ;
506
518
if ( sepPos < 0 ) {
@@ -568,13 +580,10 @@ class GmailClient {
568
580
569
581
const accessToken = await this . getToken ( ) ;
570
582
571
- const requestQuery = { } ;
572
- const messageData = await this . oAuth2Client . request (
573
- accessToken ,
574
- `${ GMAIL_API_BASE } /gmail/v1/users/me/messages/${ messageId } ?format=full` ,
575
- 'get' ,
576
- requestQuery
577
- ) ;
583
+ const requestQuery = {
584
+ format : 'full'
585
+ } ;
586
+ const messageData = await this . oAuth2Client . request ( accessToken , `${ GMAIL_API_BASE } /gmail/v1/users/me/messages/${ messageId } ` , 'get' , requestQuery ) ;
578
587
579
588
let result = this . formatMessage ( messageData , { extended : true , textType : options . textType } ) ;
580
589
@@ -604,13 +613,10 @@ class GmailClient {
604
613
bodyParts . set ( p , 'html' ) ;
605
614
} ) ;
606
615
607
- const requestQuery = { } ;
608
- const messageData = await this . oAuth2Client . request (
609
- accessToken ,
610
- `${ GMAIL_API_BASE } /gmail/v1/users/me/messages/${ messageId } ?format=full` ,
611
- 'get' ,
612
- requestQuery
613
- ) ;
616
+ const requestQuery = {
617
+ format : 'full'
618
+ } ;
619
+ const messageData = await this . oAuth2Client . request ( accessToken , `${ GMAIL_API_BASE } /gmail/v1/users/me/messages/${ messageId } ` , 'get' , requestQuery ) ;
614
620
615
621
const response = { } ;
616
622
@@ -645,6 +651,11 @@ class GmailClient {
645
651
646
652
return response ;
647
653
}
654
+
655
+ // stub. no support or need for subconnections
656
+ async subconnections ( ) {
657
+ return [ ] ;
658
+ }
648
659
}
649
660
650
661
module . exports = { GmailClient } ;
@@ -659,7 +670,18 @@ let main = async () => {
659
670
660
671
let messages = await gmailClient . listMessages ( { path : 'INBOX' } ) ;
661
672
console . log ( JSON . stringify ( messages , false , 2 ) ) ;
673
+
674
+ let deleted = false ;
675
+
662
676
for ( let msg of messages ) {
677
+ if ( / t e s t k i r i / i. test ( msg . subject ) && ! deleted ) {
678
+ deleted = true ;
679
+
680
+ console . log ( 'DELETING' , msg . id ) ;
681
+ let y = await gmailClient . deleteMessage ( msg . id , true ) ;
682
+ console . log ( 'DELETE RESULT' , y ) ;
683
+ }
684
+
663
685
if ( msg . attachments && msg . attachments . length ) {
664
686
await gmailClient . getMessage ( msg . id , { textType : '*' } ) ;
665
687
0 commit comments