email: route gmail app-password accounts over IMAP (Gmail API only for oauth)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -140,7 +140,7 @@ accountsRouter.post('/:id/sync', async (ctx) => {
|
|||||||
|
|
||||||
// Determine if this is a first sync or resync
|
// Determine if this is a first sync or resync
|
||||||
let isFirstSync = true;
|
let isFirstSync = true;
|
||||||
if (account.provider === 'gmail') {
|
if (account.provider === 'gmail' && account.authType === 'oauth') {
|
||||||
const db = openEmailDb(user.email);
|
const db = openEmailDb(user.email);
|
||||||
try {
|
try {
|
||||||
isFirstSync = !getSyncMeta(db, 'last_sync_at');
|
isFirstSync = !getSyncMeta(db, 'last_sync_at');
|
||||||
@@ -176,7 +176,8 @@ accountsRouter.post('/:id/sync', async (ctx) => {
|
|||||||
|
|
||||||
await updateEmailAccountStatus(id, 'queued');
|
await updateEmailAccountStatus(id, 'queued');
|
||||||
|
|
||||||
const jobType = account.provider === 'gmail' ? 'gmail-sync' : 'email-sync';
|
// Gmail API sync needs OAuth; a gmail account with an app password syncs over IMAP instead.
|
||||||
|
const jobType = account.provider === 'gmail' && account.authType === 'oauth' ? 'gmail-sync' : 'email-sync';
|
||||||
|
|
||||||
const job = await enqueueJob({
|
const job = await enqueueJob({
|
||||||
lane: 'email',
|
lane: 'email',
|
||||||
|
|||||||
@@ -275,7 +275,8 @@ export async function performResync({ accountId, userEmail, userId }: ResyncPara
|
|||||||
const account = await getEmailAccount(accountId);
|
const account = await getEmailAccount(accountId);
|
||||||
if (!account || account.userId !== userId) throw new Error('Account not found');
|
if (!account || account.userId !== userId) throw new Error('Account not found');
|
||||||
|
|
||||||
if (account.provider === 'gmail') {
|
// Gmail API resync needs OAuth; a gmail account authed with an app password resyncs over IMAP.
|
||||||
|
if (account.provider === 'gmail' && account.authType === 'oauth') {
|
||||||
return gmailResync(userEmail);
|
return gmailResync(userEmail);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user