From 51724e38f0c13041cc193b4a97788b96b1177049 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Thu, 10 Oct 2024 04:32:45 +0530 Subject: [PATCH 01/10] chore: remove todo --- server/src/routes/storage.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index fa21a1b3..705bfe88 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -15,7 +15,6 @@ import Robot from '../models/Robot'; import Run from '../models/Run'; import { workflowQueue } from '../worker'; -// todo: move from here export const getRecordingByFileName = async (fileName: string): Promise => { try { const recording = await readFile(`./../storage/recordings/${fileName}.json`) From eb7e2459ee223d01c78376600db065292212a55b Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Thu, 10 Oct 2024 04:33:12 +0530 Subject: [PATCH 02/10] feat: no getRecordingFromFilename --- server/src/routes/storage.ts | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index 705bfe88..ded42056 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -15,17 +15,6 @@ import Robot from '../models/Robot'; import Run from '../models/Run'; import { workflowQueue } from '../worker'; -export const getRecordingByFileName = async (fileName: string): Promise => { - try { - const recording = await readFile(`./../storage/recordings/${fileName}.json`) - const parsedRecording = JSON.parse(recording); - return parsedRecording; - } catch (error: any) { - console.error(`Error while getting recording for fileName ${fileName}:`, error.message); - return null; - } -}; - export const router = Router(); /** From 3c226d0791d51c1477245726f9e422413c1e6e1f Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Thu, 10 Oct 2024 04:34:04 +0530 Subject: [PATCH 03/10] refactor: remove all code related to fs --- server/src/routes/storage.ts | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index ded42056..3a23be9f 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -142,16 +142,7 @@ router.put('/runs/:id', requireSignIn, async (req, res) => { const plainRun = run.toJSON(); console.log(`Created run (plain object):`, plainRun); - - // // we need to handle this via DB - // fs.mkdirSync('../storage/runs', { recursive: true }) - // await saveFile( - // `../storage/runs/${req.params.fileName}_${runId}.json`, - // JSON.stringify({ ...run_meta }, null, 2) - // ); - // logger.log('debug', `Created run with name: ${req.params.fileName}.json`); - - // console.log('Run meta:', run_meta); + return res.send({ browserId: id, runId: plainRun.runId, @@ -171,7 +162,6 @@ router.get('/runs/run/:id', requireSignIn, async (req, res) => { console.log(`Params for GET /runs/run/:id`, req.params.id) // read the run from storage const run = await Run.findOne({ where: { runId: req.params.runId }, raw: true }); - //const parsedRun = JSON.parse(run); if (!run) { return res.status(404).send(null); } @@ -188,11 +178,6 @@ router.get('/runs/run/:id', requireSignIn, async (req, res) => { */ router.post('/runs/run/:id', requireSignIn, async (req, res) => { try { - // const recording = await readFile(`./../storage/recordings/${req.params.fileName}.json`) - // const parsedRecording = JSON.parse(recording); - - // const run = await readFile(`./../storage/runs/${req.params.fileName}_${req.params.runId}.json`) - // const parsedRun = JSON.parse(run); console.log(`Params for POST /runs/run/:id`, req.params.id) const run = await Run.findOne({ where: { runId: req.params.id } }); @@ -371,12 +356,6 @@ router.post('/runs/abort/:id', requireSignIn, async (req, res) => { serializableOutput, binaryOutput, }); - - // fs.mkdirSync('../storage/runs', { recursive: true }) - // await saveFile( - // `../storage/runs/${run.name}_${req.params.runId}.json`, - // JSON.stringify({ ...run_meta, serializableOutput, binaryOutput }, null, 2) - // ); return res.send(true); } catch (e) { const { message } = e as Error; From f733a819bdd8784a6f1216e3c2e2c5489ce4b2bd Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Thu, 10 Oct 2024 04:34:33 +0530 Subject: [PATCH 04/10] chire: remove comment --- server/src/routes/storage.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index 3a23be9f..4553624b 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -160,7 +160,6 @@ router.put('/runs/:id', requireSignIn, async (req, res) => { router.get('/runs/run/:id', requireSignIn, async (req, res) => { try { console.log(`Params for GET /runs/run/:id`, req.params.id) - // read the run from storage const run = await Run.findOne({ where: { runId: req.params.runId }, raw: true }); if (!run) { return res.status(404).send(null); From aeae1621ec2bee0cdb91529281a78a56fc342e8f Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Thu, 10 Oct 2024 04:35:41 +0530 Subject: [PATCH 05/10] chore: remove debug logs --- server/src/routes/storage.ts | 9 --------- 1 file changed, 9 deletions(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index 4553624b..efcc953f 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -87,7 +87,6 @@ router.delete('/runs/:id', requireSignIn, async (req, res) => { */ router.put('/runs/:id', requireSignIn, async (req, res) => { try { - console.log(`Params recieved:`, req.params) const recording = await Robot.findOne({ where: { 'recording_meta.id': req.params.id @@ -95,8 +94,6 @@ router.put('/runs/:id', requireSignIn, async (req, res) => { raw: true }); - console.log(`Recording found:`, recording) - if (!recording || !recording.recording_meta || !recording.recording_meta.id) { return res.status(404).send({ error: 'Recording not found' }); } @@ -141,8 +138,6 @@ router.put('/runs/:id', requireSignIn, async (req, res) => { const plainRun = run.toJSON(); - console.log(`Created run (plain object):`, plainRun); - return res.send({ browserId: id, runId: plainRun.runId, @@ -159,7 +154,6 @@ router.put('/runs/:id', requireSignIn, async (req, res) => { */ router.get('/runs/run/:id', requireSignIn, async (req, res) => { try { - console.log(`Params for GET /runs/run/:id`, req.params.id) const run = await Run.findOne({ where: { runId: req.params.runId }, raw: true }); if (!run) { return res.status(404).send(null); @@ -184,8 +178,6 @@ router.post('/runs/run/:id', requireSignIn, async (req, res) => { return res.status(404).send(false); } - console.log(`found run: ${run}`) - const plainRun = run.toJSON(); const recording = await Robot.findOne({ where: { 'recording_meta.id': plainRun.robotMetaId }, raw: true }); @@ -325,7 +317,6 @@ router.put('/schedule/:id/', requireSignIn, async (req, res) => { */ router.post('/runs/abort/:id', requireSignIn, async (req, res) => { try { - console.log(`Params for POST /runs/abort/:id`, req.params.id) const run = await Run.findOne({ where: { runId: req.params.id } }); if (!run) { return res.status(404).send(false); From a26ad2aec65f59abd0345ed9c4d5c0e7cabc1d18 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Thu, 10 Oct 2024 04:36:00 +0530 Subject: [PATCH 06/10] chore: remove unused imports --- server/src/routes/storage.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/src/routes/storage.ts b/server/src/routes/storage.ts index efcc953f..b43713f6 100644 --- a/server/src/routes/storage.ts +++ b/server/src/routes/storage.ts @@ -1,10 +1,8 @@ import { Router } from 'express'; import logger from "../logger"; -import { deleteFile, readFile, readFiles, saveFile } from "../workflow-management/storage"; import { createRemoteBrowserForRun, destroyRemoteBrowser } from "../browser-management/controller"; import { chromium } from "playwright"; import { browserPool } from "../server"; -import fs from "fs"; import { uuid } from "uuidv4"; import moment from 'moment-timezone'; import cron from 'node-cron'; From 92481ba75b86598e3537f48f60d3cc1b85d0c748 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Thu, 10 Oct 2024 04:36:33 +0530 Subject: [PATCH 07/10] feat: use recording_meta.id --- server/src/routes/workflow.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/server/src/routes/workflow.ts b/server/src/routes/workflow.ts index c1bbc00d..4f133983 100644 --- a/server/src/routes/workflow.ts +++ b/server/src/routes/workflow.ts @@ -125,16 +125,21 @@ router.put('/pair/:index', requireSignIn, (req, res) => { // }); -router.put('/:browserId/:robotId', requireSignIn, async (req, res) => { +router.put('/:browserId/:id', requireSignIn, async (req, res) => { try { const browser = browserPool.getRemoteBrowser(req.params.browserId); - logger.log('debug', `Updating workflow for Robot ID: ${req.params.robotId}`); + logger.log('debug', `Updating workflow for Robot: ${req.params.id}`); if (browser && browser.generator) { - const robot = await Robot.findByPk(req.params.robotId); + const robot = await Robot.findOne({ + where: { + 'recording_meta.id': req.params.id + }, + raw: true + }); if (!robot) { - logger.log('info', `Robot not found with ID: ${req.params.robotId}`); + logger.log('info', `Robot not found with ID: ${req.params.id}`); return res.status(404).send({ error: 'Robot not found' }); } @@ -145,16 +150,16 @@ router.put('/:browserId/:robotId', requireSignIn, async (req, res) => { const workflowFile = browser.generator.getWorkflowFile(); return res.send(workflowFile); } else { - logger.log('info', `Invalid recording data for Robot ID: ${req.params.robotId}`); + logger.log('info', `Invalid recording data for Robot ID: ${req.params.id}`); return res.status(400).send({ error: 'Invalid recording data' }); } } - logger.log('info', `Browser or generator not available for ID: ${req.params.browserId}`); + logger.log('info', `Browser or generator not available for ID: ${req.params.id}`); return res.status(400).send({ error: 'Browser or generator not available' }); } catch (e) { const { message } = e as Error; - logger.log('error', `Error while updating workflow for Robot ID: ${req.params.robotId}. Error: ${message}`); + logger.log('error', `Error while updating workflow for Robot ID: ${req.params.id}. Error: ${message}`); return res.status(500).send({ error: 'Internal server error' }); } }); From 95626de61ddc9124bb1784fabf3f3c5cfc254428 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Thu, 10 Oct 2024 04:36:57 +0530 Subject: [PATCH 08/10] chore: remove fileName route --- server/src/routes/workflow.ts | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/server/src/routes/workflow.ts b/server/src/routes/workflow.ts index 4f133983..1f95371e 100644 --- a/server/src/routes/workflow.ts +++ b/server/src/routes/workflow.ts @@ -103,26 +103,7 @@ router.put('/pair/:index', requireSignIn, (req, res) => { /** * PUT endpoint for updating the currently generated workflow file from the one in the storage. */ -// router.put('/:browserId/:fileName', requireSignIn, async (req, res) => { -// try { -// const browser = browserPool.getRemoteBrowser(req.params.browserId); -// logger.log('debug', `Updating workflow file`); -// if (browser && browser.generator) { -// const recording = await readFile(`./../storage/recordings/${req.params.fileName}.json`) -// const parsedRecording = JSON.parse(recording); -// if (parsedRecording.recording) { -// browser.generator?.updateWorkflowFile(parsedRecording.recording, parsedRecording.recording_meta); -// const workflowFile = browser.generator?.getWorkflowFile(); -// return res.send(workflowFile); -// } -// } -// return res.send(null); -// } catch (e) { -// const { message } = e as Error; -// logger.log('info', `Error while reading a recording with name: ${req.params.fileName}.json`); -// return res.send(null); -// } -// }); + router.put('/:browserId/:id', requireSignIn, async (req, res) => { From 0db09e6e5d251d60b7d0945fec616672f402d676 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Thu, 10 Oct 2024 04:37:14 +0530 Subject: [PATCH 09/10] fix: whitespace --- server/src/routes/workflow.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/server/src/routes/workflow.ts b/server/src/routes/workflow.ts index 1f95371e..05fa3abb 100644 --- a/server/src/routes/workflow.ts +++ b/server/src/routes/workflow.ts @@ -103,9 +103,6 @@ router.put('/pair/:index', requireSignIn, (req, res) => { /** * PUT endpoint for updating the currently generated workflow file from the one in the storage. */ - - - router.put('/:browserId/:id', requireSignIn, async (req, res) => { try { const browser = browserPool.getRemoteBrowser(req.params.browserId); From b44ba5778e252891fde648632a6c0d88704346f9 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Thu, 10 Oct 2024 04:37:33 +0530 Subject: [PATCH 10/10] chore: remove unused imports --- server/src/routes/workflow.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/server/src/routes/workflow.ts b/server/src/routes/workflow.ts index 05fa3abb..3c0e356b 100644 --- a/server/src/routes/workflow.ts +++ b/server/src/routes/workflow.ts @@ -5,7 +5,6 @@ import { Router } from 'express'; import logger from "../logger"; import { browserPool } from "../server"; -import { readFile } from "../workflow-management/storage"; import { requireSignIn } from '../middlewares/auth'; import Robot from '../models/Robot';