Add /leave endpoint to end sessions

- Add POST /leave endpoint that deletes offers by code
- Allows either peer to end the session
- Returns success confirmation

This enables proper session cleanup when either peer
wants to explicitly end the connection.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-13 00:05:30 +01:00
parent 8a94b661a8
commit 377d12b820

View File

@@ -190,5 +190,28 @@ export function createApp(storage: Storage, config: AppConfig) {
}
});
/**
* POST /leave
* Ends a session by deleting the offer
* Body: { code: string }
*/
app.post('/leave', async (c) => {
try {
const body = await c.req.json();
const { code } = body;
if (!code || typeof code !== 'string') {
return c.json({ error: 'Missing or invalid required parameter: code' }, 400);
}
await storage.deleteOffer(code);
return c.json({ success: true }, 200);
} catch (err) {
console.error('Error leaving session:', err);
return c.json({ error: 'Internal server error' }, 500);
}
});
return app;
}