76 lines
1.9 KiB
TypeScript
76 lines
1.9 KiB
TypeScript
/**
|
|
* Proxy management routes
|
|
*/
|
|
import { Hono } from 'hono';
|
|
import { getLogger } from '@stock-bot/logger';
|
|
import { queueManager } from '../services/queue.service';
|
|
|
|
const logger = getLogger('proxy-routes');
|
|
|
|
export const proxyRoutes = new Hono();
|
|
|
|
// Proxy management endpoints
|
|
proxyRoutes.post('/api/proxy/fetch', async c => {
|
|
try {
|
|
const job = await queueManager.addJob({
|
|
type: 'proxy-fetch',
|
|
provider: 'proxy-provider',
|
|
operation: 'fetch-and-check',
|
|
payload: {},
|
|
priority: 5,
|
|
});
|
|
|
|
return c.json({
|
|
status: 'success',
|
|
jobId: job.id,
|
|
message: 'Proxy fetch job queued',
|
|
});
|
|
} catch (error) {
|
|
logger.error('Failed to queue proxy fetch', { error });
|
|
return c.json({ status: 'error', message: 'Failed to queue proxy fetch' }, 500);
|
|
}
|
|
});
|
|
|
|
proxyRoutes.post('/api/proxy/check', async c => {
|
|
try {
|
|
const { proxies } = await c.req.json();
|
|
const job = await queueManager.addJob({
|
|
type: 'proxy-check',
|
|
provider: 'proxy-provider',
|
|
operation: 'check-specific',
|
|
payload: { proxies },
|
|
priority: 8,
|
|
});
|
|
|
|
return c.json({
|
|
status: 'success',
|
|
jobId: job.id,
|
|
message: `Proxy check job queued for ${proxies.length} proxies`,
|
|
});
|
|
} catch (error) {
|
|
logger.error('Failed to queue proxy check', { error });
|
|
return c.json({ status: 'error', message: 'Failed to queue proxy check' }, 500);
|
|
}
|
|
});
|
|
|
|
// Get proxy stats via queue
|
|
proxyRoutes.get('/api/proxy/stats', async c => {
|
|
try {
|
|
const job = await queueManager.addJob({
|
|
type: 'proxy-stats',
|
|
provider: 'proxy-provider',
|
|
operation: 'get-stats',
|
|
payload: {},
|
|
priority: 3,
|
|
});
|
|
|
|
return c.json({
|
|
status: 'success',
|
|
jobId: job.id,
|
|
message: 'Proxy stats job queued',
|
|
});
|
|
} catch (error) {
|
|
logger.error('Failed to queue proxy stats', { error });
|
|
return c.json({ status: 'error', message: 'Failed to queue proxy stats' }, 500);
|
|
}
|
|
});
|