/** * Queue management routes */ import { Hono } from 'hono'; import { getLogger } from '@stock-bot/logger'; import { queueManager } from '../services/queue.service'; const logger = getLogger('queue-routes'); export const queueRoutes = new Hono(); // Queue management endpoints queueRoutes.get('/api/queue/status', async c => { try { const status = await queueManager.getQueueStatus(); return c.json({ status: 'success', data: status }); } catch (error) { logger.error('Failed to get queue status', { error }); return c.json({ status: 'error', message: 'Failed to get queue status' }, 500); } }); queueRoutes.post('/api/queue/job', async c => { try { const jobData = await c.req.json(); const job = await queueManager.addJob(jobData); return c.json({ status: 'success', jobId: job.id }); } catch (error) { logger.error('Failed to add job', { error }); return c.json({ status: 'error', message: 'Failed to add job' }, 500); } }); // Provider registry endpoints queueRoutes.get('/api/providers', async c => { try { const { providerRegistry } = await import('../services/provider-registry.service'); const providers = providerRegistry.getProviders(); return c.json({ status: 'success', providers }); } catch (error) { logger.error('Failed to get providers', { error }); return c.json({ status: 'error', message: 'Failed to get providers' }, 500); } }); // Add new endpoint to see scheduled jobs queueRoutes.get('/api/scheduled-jobs', async c => { try { const { providerRegistry } = await import('../services/provider-registry.service'); const jobs = providerRegistry.getAllScheduledJobs(); return c.json({ status: 'success', count: jobs.length, jobs, }); } catch (error) { logger.error('Failed to get scheduled jobs info', { error }); return c.json({ status: 'error', message: 'Failed to get scheduled jobs' }, 500); } }); queueRoutes.post('/api/queue/drain', async c => { try { await queueManager.drainQueue(); const status = await queueManager.getQueueStatus(); return c.json({ status: 'success', message: 'Queue drained', queueStatus: status }); } catch (error) { logger.error('Failed to drain queue', { error }); return c.json({ status: 'error', message: 'Failed to drain queue' }, 500); } });