feat: log cleanup, better error messages

This commit is contained in:
Rohit
2025-03-11 22:03:44 +05:30
parent 10e1e8a87c
commit e09d3179e7

View File

@@ -56,7 +56,6 @@ async function waitForJobCompletion(jobId: string, queueName: string, timeout =
} }
}; };
// Start checking
checkJobStatus(); checkJobStatus();
}); });
} }
@@ -88,9 +87,8 @@ router.get('/start', requireSignIn, async (req: AuthenticatedRequest, res: Respo
}); });
if (!jobId) { if (!jobId) {
logger.log('warn', 'pgBoss.send returned null, falling back to direct initialization');
const browserId = initializeRemoteBrowserForRecording(req.user.id); const browserId = initializeRemoteBrowserForRecording(req.user.id);
return res.send( browserId ); return res.send(browserId);
} }
logger.log('info', `Queued browser initialization job: ${jobId}, waiting for completion...`); logger.log('info', `Queued browser initialization job: ${jobId}, waiting for completion...`);
@@ -99,14 +97,11 @@ router.get('/start', requireSignIn, async (req: AuthenticatedRequest, res: Respo
const result = await waitForJobCompletion(jobId, 'initialize-browser-recording', 15000); const result = await waitForJobCompletion(jobId, 'initialize-browser-recording', 15000);
if (result && result.browserId) { if (result && result.browserId) {
logger.log('info', `Job completed with browserId: ${result.browserId}`);
return res.send(result.browserId); return res.send(result.browserId);
} else { } else {
logger.log('warn', 'Job completed but returned unexpected result');
return res.send(jobId); return res.send(jobId);
} }
} catch (waitError: any) { } catch (waitError: any) {
logger.log('warn', `Error waiting for job completion: ${waitError.message}`);
return res.send(jobId); return res.send(jobId);
} }
} catch (error: any) { } catch (error: any) {
@@ -153,7 +148,6 @@ router.get('/stop/:browserId', requireSignIn, async (req: AuthenticatedRequest,
}); });
if (!jobId) { if (!jobId) {
logger.log('warn', 'pgBoss.send returned null, falling back to direct destruction');
const browserId = initializeRemoteBrowserForRecording(req.user.id); const browserId = initializeRemoteBrowserForRecording(req.user.id);
return res.send( browserId ); return res.send( browserId );
} }
@@ -164,14 +158,11 @@ router.get('/stop/:browserId', requireSignIn, async (req: AuthenticatedRequest,
const result = await waitForJobCompletion(jobId, 'destroy-browser', 15000); const result = await waitForJobCompletion(jobId, 'destroy-browser', 15000);
if (result) { if (result) {
logger.log('info', `Browser destruction job completed with result: ${result.success}`);
return res.send(result.success); return res.send(result.success);
} else { } else {
logger.log('warn', 'Job completed but returned unexpected result');
return res.send(false); return res.send(false);
} }
} catch (waitError: any) { } catch (waitError: any) {
logger.log('warn', `Error waiting for job completion: ${waitError.message}`);
return res.send(false); return res.send(false);
} }
} catch (error: any) { } catch (error: any) {
@@ -238,7 +229,6 @@ router.get('/interpret', requireSignIn, async (req: AuthenticatedRequest, res) =
}); });
if (!jobId) { if (!jobId) {
logger.log('warn', 'pgBoss.send returned null, falling back to direct destruction');
await interpretWholeWorkflow(req.user?.id); await interpretWholeWorkflow(req.user?.id);
return res.send('interpretation done'); return res.send('interpretation done');
} }
@@ -249,18 +239,15 @@ router.get('/interpret', requireSignIn, async (req: AuthenticatedRequest, res) =
const result = await waitForJobCompletion(jobId, 'interpret-workflow', 15000); const result = await waitForJobCompletion(jobId, 'interpret-workflow', 15000);
if (result) { if (result) {
logger.log('info', `Browser destruction job completed with result: ${result.success}`);
return res.send('interpretation done'); return res.send('interpretation done');
} else { } else {
logger.log('warn', 'Job completed but returned unexpected result');
return res.send('interpretation failed'); return res.send('interpretation failed');
} }
} catch (waitError: any) { } catch (waitError: any) {
logger.log('warn', `Error waiting for job completion: ${waitError.message}`);
return res.send('interpretation failed'); return res.send('interpretation failed');
} }
} catch (error: any) { } catch (error: any) {
logger.log('error', `Failed to stop browser: ${error.message}`); logger.log('error', `Failed to stop interpret workflow: ${error.message}`);
return res.status(500).send('interpretation failed'); return res.status(500).send('interpretation failed');
} }
}); });
@@ -279,9 +266,8 @@ router.get('/interpret/stop', requireSignIn, async (req: AuthenticatedRequest, r
}); });
if (!jobId) { if (!jobId) {
logger.log('warn', 'pgBoss.send returned null, falling back to direct destruction'); await stopRunningInterpretation(req.user?.id);
await interpretWholeWorkflow(req.user?.id); return res.send('interpretation stopped');
return res.send('interpretation done');
} }
logger.log('info', `Queued stop interpret workflow job: ${jobId}, waiting for completion...`); logger.log('info', `Queued stop interpret workflow job: ${jobId}, waiting for completion...`);
@@ -290,31 +276,17 @@ router.get('/interpret/stop', requireSignIn, async (req: AuthenticatedRequest, r
const result = await waitForJobCompletion(jobId, 'stop-interpretation', 15000); const result = await waitForJobCompletion(jobId, 'stop-interpretation', 15000);
if (result) { if (result) {
logger.log('info', `Browser destruction job completed with result: ${result.success}`);
return res.send('interpretation stopped'); return res.send('interpretation stopped');
} else { } else {
logger.log('warn', 'Job completed but returned unexpected result');
return res.send('interpretation failed to stop'); return res.send('interpretation failed to stop');
} }
} catch (waitError: any) { } catch (waitError: any) {
logger.log('warn', `Error waiting for job completion: ${waitError.message}`);
return res.send('interpretation failed to stop'); return res.send('interpretation failed to stop');
} }
} catch (error: any) { } catch (error: any) {
logger.log('error', `Failed to stop browser: ${error.message}`); logger.log('error', `Failed to stop interpretation: ${error.message}`);
return res.status(500).send('interpretation failed to stop'); return res.status(500).send('interpretation failed to stop');
} }
}); });
/**
* GET endpoint for stopping an ongoing interpretation of the currently generated workflow.
*/
router.get('/interpret/stop', requireSignIn, async (req: AuthenticatedRequest, res) => {
if (!req.user) {
return res.status(401).send('User not authenticated');
}
await stopRunningInterpretation(req.user?.id);
return res.send('interpretation stopped');
});
export default router; export default router;