[object Object]

← back to George Gmail

Add DELETE /api/drafts/:id route + make GET /api/drafts account-aware (was always steve-office)

2626a50a24ec9fde651b40c748bd66eee92a688b · 2026-06-24 11:42:15 -0700 · Steve

Files touched

Diff

commit 2626a50a24ec9fde651b40c748bd66eee92a688b
Author: Steve <steve@designerwallcoverings.com>
Date:   Wed Jun 24 11:42:15 2026 -0700

    Add DELETE /api/drafts/:id route + make GET /api/drafts account-aware (was always steve-office)
---
 server.js | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/server.js b/server.js
index 281d6ea..9923e3b 100644
--- a/server.js
+++ b/server.js
@@ -1322,13 +1322,29 @@ app.post('/api/drafts', async (req, res) => {
 // ─── API: List Drafts ───
 app.get('/api/drafts', async (req, res) => {
   try {
-    const result = await gmail.users.drafts.list({ userId: 'me', maxResults: parseInt(req.query.maxResults) || 10 });
+    const { gmail: g, key: account } = resolveAccount(req);
+    if (!g) return res.status(400).json({ error: `unknown account: ${account}` });
+    const result = await g.users.drafts.list({ userId: 'me', maxResults: parseInt(req.query.maxResults) || 10 });
     res.json(result.data.drafts || []);
   } catch (e) {
     res.status(500).json({ error: e.message });
   }
 });
 
+// ─── API: Delete a Draft ───
+// DELETE /api/drafts/:id?account=info  — permanently removes the draft (not trash).
+app.delete('/api/drafts/:id', async (req, res) => {
+  try {
+    const { gmail: g, key: account } = resolveAccount(req);
+    if (!g) return res.status(400).json({ error: `unknown account: ${account}` });
+    await g.users.drafts.delete({ userId: 'me', id: req.params.id });
+    audit(account, 'draft-delete', { draftId: req.params.id });
+    res.json({ success: true, draftId: req.params.id, account });
+  } catch (e) {
+    res.status(500).json({ error: e.message });
+  }
+});
+
 // ─── API: Get Attachment ───
 app.get('/api/messages/:messageId/attachments/:attachmentId', async (req, res) => {
   try {

← a42bc74 George external-send guard: block outbound sends to non-Stev  ·  back to George Gmail  ·  send-with-attachment: resolve any account (steve-personal/ag 23d49a6 →