From 142f4f77cd58f615e50419845170797d2828196b Mon Sep 17 00:00:00 2001 From: =bhagwanSingh Date: Fri, 28 Nov 2025 16:19:19 +0530 Subject: [PATCH] 28-11 --- public/js/va-client-register.js | 4 +-- .../project/projectAddSf.controller.js | 32 +++++++++---------- src/server.js | 30 +++++++++++++++++ views/va_live_tracker.ejs | 20 ++++++++---- 4 files changed, 61 insertions(+), 25 deletions(-) diff --git a/public/js/va-client-register.js b/public/js/va-client-register.js index 650beed..a9d6788 100644 --- a/public/js/va-client-register.js +++ b/public/js/va-client-register.js @@ -166,7 +166,7 @@ function validateCVV(cvv, cardType) { } // ZIP code validation -function validateZipCode(zipCode) { +function validateZipCodeRegex(zipCode) { return /^\d{5}(-\d{4})?$/.test(zipCode); } @@ -450,7 +450,7 @@ async function validateStep(step) { // ZIP code validation const zipCode = document.getElementById('card-zip').value; - if (!validateZipCode(zipCode)) { + if (!validateZipCodeRegex(zipCode)) { isValid = false; showError('Please enter a valid ZIP code', 'card-zip', step); return isValid; diff --git a/src/controllers/project/projectAddSf.controller.js b/src/controllers/project/projectAddSf.controller.js index cc08b15..39bb9b5 100644 --- a/src/controllers/project/projectAddSf.controller.js +++ b/src/controllers/project/projectAddSf.controller.js @@ -83,26 +83,26 @@ async function project_add_sf(req, res) { // Send data to Salesforce API after successful registration try { - const salesforceUrl = `${process.env.SF_DOCTRACKER_API_URL}services/apexrest/docva/api/`; + // const salesforceUrl = `${process.env.SF_DOCTRACKER_API_URL}services/apexrest/docva/api/`; - const response = await fetch(salesforceUrl, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(created) - }); + // const response = await fetch(salesforceUrl, { + // method: 'POST', + // headers: { + // 'Content-Type': 'application/json', + // }, + // body: JSON.stringify(created) + // }); - if (!response.ok) { - const errorText = await response.text(); - throw new Error(`Salesforce API responded with status ${response.status}: ${errorText}`); - } + // if (!response.ok) { + // const errorText = await response.text(); + // throw new Error(`Salesforce API responded with status ${response.status}: ${errorText}`); + // } - const result = await response.json(); - console.log("✅ Successfully synced VA data to Salesforce:", result); + // const result = await response.json(); + // console.log("✅ Successfully synced VA data to Salesforce:", result); - res.status(201).json({ success: true, data: created, SyncSalesforce: result }); - // res.status(201).json({ success: true, data: created, relationships: relationshipUpdate }); + // res.status(201).json({ success: true, data: created, SyncSalesforce: result }); + res.status(201).json({ success: true, data: created, relationships: relationshipUpdate }); } catch (error) { console.error("❌ Failed to sync with Salesforce:", error.message); diff --git a/src/server.js b/src/server.js index 5e99b37..be52a17 100644 --- a/src/server.js +++ b/src/server.js @@ -380,6 +380,36 @@ io.on("connection", (socket) => { socket.to(vaSocketRespectToClient.get(`${clientId}-${vaId}-${projectId}-va`)).emit("appToCapture", { appTitle }); }); + socket.on("requestVisibleApps", async ({ token }) => { + try { + // Verify token + const decoded = jwt.verify(token, process.env.JWT_SECRET_ACCESS_TOKEN); + const vaEmail = decoded.email; + + // Find VA in DB + const vaUser = await VAModel.findOne({ "userDetails.email": vaEmail }); + if (!vaUser) { + console.log("❌ Unauthorized VA"); + return; + } + + const vaId = vaUser._id.toString(); + console.log("🟢 Received Apps from VA:", vaId); + + // Broadcast image only to allowed clients + for (let [_, clientSocket] of io.sockets.sockets) { + if ( + clientSocket.data.role === "client" && + clientSocket.data.allowedVAs?.includes(vaId) + ) { + clientSocket.emit("captureAppsTracker"); + } + } + } catch (error) { + console.error("❌ Token verification failed:", err.message); + } + }); + socket.on("getVisibleApps", async ({ token, apps }) => { try { // Verify token diff --git a/views/va_live_tracker.ejs b/views/va_live_tracker.ejs index 192432a..80e4916 100644 --- a/views/va_live_tracker.ejs +++ b/views/va_live_tracker.ejs @@ -3,13 +3,13 @@ - Live Screen Feed + Live Screen Feed -