From be5f1ef40a347318c503e9455815962f336ee57c Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Thu, 26 Sep 2024 22:56:44 +0530 Subject: [PATCH] feat: get robot by name --- server/src/api/record.ts | 49 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/server/src/api/record.ts b/server/src/api/record.ts index b7789335..adef7da6 100644 --- a/server/src/api/record.ts +++ b/server/src/api/record.ts @@ -55,3 +55,52 @@ router.get("/api/recordings", requireAPIKey, async (req: Request, res: Response) }); } }); + + +const formatRecordingById = (recordingData: any) => { + const recordingMeta = recordingData.recording_meta; + const workflow = recordingData.recording.workflow || []; + const firstWorkflowStep = workflow[0]?.where?.url || ''; + + const inputParameters = [ + { + type: "string", + name: "originUrl", + label: "Origin URL", + required: true, + defaultValue: firstWorkflowStep, + }, + ]; + + return { + id: recordingMeta.id, + name: recordingMeta.name, + createdAt: new Date(recordingMeta.create_date).getTime(), + inputParameters, + }; + }; + + router.get("/recordings/:fileName", requireAPIKey, async (req: Request, res: Response) => { + try { + const fileContent = await readFile(`./../storage/recordings/${req.params.fileName}.waw.json`); + + const recordingData = JSON.parse(fileContent); + const formattedRecording = formatRecording(recordingData); + + const response = { + statusCode: 200, + messageCode: "success", + robot: formattedRecording, + }; + + res.status(200).json(response); + } catch (error) { + console.error("Error fetching recording:", error); + res.status(404).json({ + statusCode: 404, + messageCode: "not_found", + message: `Recording with name "${req.params.fileName}" not found.`, + }); + } + }); + \ No newline at end of file