UNPKG

@copperjs/copper

Version:
35 lines (27 loc) 1.25 kB
import { FastifyPluginCallback } from 'fastify'; import { addWsUrl } from '../common/utils'; import { CreateSessionArgs, sessionManager } from './sessionManager'; export type withSessionId = { Params: { sessionId: string } }; export const registerRoutes: FastifyPluginCallback = (app, opts, done) => { app.get('/status', async () => { return { ready: true, message: 'Copper Is Ready' }; }); app.get('/sessions', async () => { const value = sessionManager.listSessions(); return { status: 0, value }; }); app.post<{ Body: CreateSessionArgs }>('/session', async (req) => { const session = await sessionManager.createSession(req.body); const value = addWsUrl(req, session); return { status: 0, value, sessionId: session.id }; }); app.get<withSessionId>('/session/:sessionId', async (req) => { const value = sessionManager.getSession(req.params.sessionId); return { status: 0, value, sessionId: value.id }; }); app.delete<withSessionId>('/session/:sessionId', async (req) => { await sessionManager.removeSession(req.params.sessionId); return { status: 0, value: null, sessionId: null, state: 'success' }; }); done(); };