← 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 →