refactored data-sync service

This commit is contained in:
Boki 2025-06-18 19:39:40 -04:00
parent 1bb6b62408
commit 68d977f9e0
6 changed files with 183 additions and 134 deletions

View file

@ -0,0 +1,61 @@
import { Hono } from 'hono';
import { getLogger } from '@stock-bot/logger';
import { syncManager } from '../services/sync-manager';
import { enhancedSyncManager } from '../services/enhanced-sync-manager';
const logger = getLogger('sync-routes');
const sync = new Hono();
// Manual sync trigger endpoints
sync.post('/symbols', async c => {
try {
const result = await syncManager.syncQMSymbols();
return c.json({ success: true, result });
} catch (error) {
logger.error('Manual symbol sync failed', { error });
return c.json(
{ success: false, error: error instanceof Error ? error.message : 'Unknown error' },
500
);
}
});
sync.post('/exchanges', async c => {
try {
const result = await syncManager.syncQMExchanges();
return c.json({ success: true, result });
} catch (error) {
logger.error('Manual exchange sync failed', { error });
return c.json(
{ success: false, error: error instanceof Error ? error.message : 'Unknown error' },
500
);
}
});
// Get sync status
sync.get('/status', async c => {
try {
const status = await syncManager.getSyncStatus();
return c.json(status);
} catch (error) {
logger.error('Failed to get sync status', { error });
return c.json({ error: error instanceof Error ? error.message : 'Unknown error' }, 500);
}
});
// Clear data endpoint
sync.post('/clear', async c => {
try {
const result = await enhancedSyncManager.clearPostgreSQLData();
return c.json({ success: true, result });
} catch (error) {
logger.error('Clear PostgreSQL data failed', { error });
return c.json(
{ success: false, error: error instanceof Error ? error.message : 'Unknown error' },
500
);
}
});
export { sync as syncRoutes };