feat(09-02): add signalOutboxDrain() after each of four enqueue sites in events.ts
- import signalOutboxDrain from '../lib/outboxTrigger.js' - Site 1 (POST /create): fire-and-forget signal after outbox insert, before 202 - Site 2 (PATCH edit-as-move): signal after await db.transaction() resolves, not inside callback (D-03) - Site 3 (PATCH same-calendar update): signal after outbox insert, before 202 - Site 4 (DELETE): signal after outbox insert, before 202
This commit is contained in:
@@ -34,6 +34,7 @@ import { expandOccurrences } from '../broker/expand.js';
|
|||||||
import { extractRruleString } from '../broker/vevent.js';
|
import { extractRruleString } from '../broker/vevent.js';
|
||||||
import { getAuth } from '../auth/middleware.js';
|
import { getAuth } from '../auth/middleware.js';
|
||||||
import { upsertUser, deriveDisplayName } from '../auth/user.js';
|
import { upsertUser, deriveDisplayName } from '../auth/user.js';
|
||||||
|
import { signalOutboxDrain } from '../lib/outboxTrigger.js';
|
||||||
// Side-effect import: brings in the ContextVariableMap augmentation for c.get('user')
|
// Side-effect import: brings in the ContextVariableMap augmentation for c.get('user')
|
||||||
import '../auth/devBypass.js';
|
import '../auth/devBypass.js';
|
||||||
|
|
||||||
@@ -306,6 +307,7 @@ eventsRouter.post('/create', zValidator('json', eventFieldsSchema), async (c) =>
|
|||||||
payload: JSON.stringify(payload),
|
payload: JSON.stringify(payload),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
signalOutboxDrain();
|
||||||
return c.json({ uid }, 202);
|
return c.json({ uid }, 202);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('[events/create] DB operation failed:', err);
|
console.error('[events/create] DB operation failed:', err);
|
||||||
@@ -429,6 +431,7 @@ eventsRouter.patch('/:uid/edit', zValidator('json', eventFieldsSchema), async (c
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
signalOutboxDrain();
|
||||||
return c.json({ uid: newUid }, 202);
|
return c.json({ uid: newUid }, 202);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -444,6 +447,7 @@ eventsRouter.patch('/:uid/edit', zValidator('json', eventFieldsSchema), async (c
|
|||||||
payload: JSON.stringify(payload),
|
payload: JSON.stringify(payload),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
signalOutboxDrain();
|
||||||
return c.json({ uid }, 202);
|
return c.json({ uid }, 202);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('[events/edit] DB operation failed:', err);
|
console.error('[events/edit] DB operation failed:', err);
|
||||||
@@ -518,6 +522,7 @@ eventsRouter.delete('/:uid', async (c) => {
|
|||||||
etag: eventRow.etag ?? undefined,
|
etag: eventRow.etag ?? undefined,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
signalOutboxDrain();
|
||||||
return c.json({ uid }, 202);
|
return c.json({ uid }, 202);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('[events/delete] DB operation failed:', err);
|
console.error('[events/delete] DB operation failed:', err);
|
||||||
|
|||||||
Reference in New Issue
Block a user