From a5afcd5757376567539e2f86afa02b531a4cdde1 Mon Sep 17 00:00:00 2001 From: Jerald-Golden-B Date: Tue, 24 Jun 2025 11:04:56 +0530 Subject: [PATCH 1/2] Implement resetStates hook and integrate it into Header component for state management --- .../components/layout/sidebarLeft/Header.tsx | 11 +++++++- app/src/hooks/temp.md | 0 app/src/hooks/useResetStates.ts | 26 +++++++++++++++++++ app/src/modules/scene/sceneContext.tsx | 15 +++++++++-- app/src/store/builder/useAisleStore.ts | 7 +++++ 5 files changed, 56 insertions(+), 3 deletions(-) delete mode 100644 app/src/hooks/temp.md create mode 100644 app/src/hooks/useResetStates.ts diff --git a/app/src/components/layout/sidebarLeft/Header.tsx b/app/src/components/layout/sidebarLeft/Header.tsx index a9759de..edcd2e8 100644 --- a/app/src/components/layout/sidebarLeft/Header.tsx +++ b/app/src/components/layout/sidebarLeft/Header.tsx @@ -5,16 +5,25 @@ import FileMenu from "../../ui/FileMenu"; import { useToggleStore } from "../../../store/useUIToggleStore"; import useModuleStore from "../../../store/useModuleStore"; import { useNavigate } from "react-router-dom"; +import useRestStates from "../../../hooks/useResetStates"; const Header: React.FC = () => { const { toggleUILeft, toggleUIRight, setToggleUI } = useToggleStore(); const { activeModule } = useModuleStore(); const navigate = useNavigate(); + const { resetStates } = useRestStates(); return (
-
diff --git a/app/src/hooks/temp.md b/app/src/hooks/temp.md deleted file mode 100644 index e69de29..0000000 diff --git a/app/src/hooks/useResetStates.ts b/app/src/hooks/useResetStates.ts new file mode 100644 index 0000000..87bef11 --- /dev/null +++ b/app/src/hooks/useResetStates.ts @@ -0,0 +1,26 @@ +import { useVersionContext } from "../modules/builder/version/versionContext"; +import { useSceneContext } from "../modules/scene/sceneContext"; +import { useProductContext } from "../modules/simulation/products/productContext"; +import { useVersionHistoryStore } from "../store/builder/useVersionHistoryStore"; + +const useRestStates = () => { + const { selectedVersionStore } = useVersionContext(); + const { clearSelectedVersion } = selectedVersionStore(); + const { selectedProductStore } = useProductContext(); + const { clearSelectedProduct } = selectedProductStore(); + const { clearVersions } = useVersionHistoryStore(); + const { clearStores } = useSceneContext(); + + const resetStates = () => { + clearSelectedVersion(); + clearSelectedProduct(); + clearVersions(); + clearStores(); + }; + + return { + resetStates, + }; +}; + +export default useRestStates; \ No newline at end of file diff --git a/app/src/modules/scene/sceneContext.tsx b/app/src/modules/scene/sceneContext.tsx index 8d742ed..a339ddf 100644 --- a/app/src/modules/scene/sceneContext.tsx +++ b/app/src/modules/scene/sceneContext.tsx @@ -28,6 +28,8 @@ type SceneContextValue = { vehicleStore: VehicleStoreType; storageUnitStore: StorageUnitStoreType; + clearStores: () => void; + layout: 'Main Layout' | 'Comparison Layout'; }; @@ -55,8 +57,17 @@ export function SceneProvider({ const storageUnitStore = useMemo(() => createStorageUnitStore(), []); const clearStores = useMemo(() => () => { - assetStore().clearAssets(); - }, [assetStore]); + assetStore.getState().clearAssets(); + aisleStore.getState().clearAisles(); + eventStore.getState().clearEvents(); + productStore.getState().clearProducts(); + materialStore.getState().clearMaterials(); + armBotStore.getState().clearArmBots(); + machineStore.getState().clearMachines(); + conveyorStore.getState().clearConveyors(); + vehicleStore.getState().clearVehicles(); + storageUnitStore.getState().clearStorageUnits(); + }, [assetStore, aisleStore, eventStore, productStore, materialStore, armBotStore, machineStore, conveyorStore, vehicleStore, storageUnitStore]); const contextValue = useMemo(() => ( { diff --git a/app/src/store/builder/useAisleStore.ts b/app/src/store/builder/useAisleStore.ts index 35c79df..4e9e6ad 100644 --- a/app/src/store/builder/useAisleStore.ts +++ b/app/src/store/builder/useAisleStore.ts @@ -8,6 +8,7 @@ interface AisleStore { updateAisle: (uuid: string, updated: Partial) => void; removeAisle: (uuid: string) => void; removePoint: (uuid: string) => Aisles; + clearAisles: () => void; setPosition: ( pointUuid: string, position: [number, number, number] @@ -92,6 +93,12 @@ export const createAisleStore = () => { return removedAisles; }, + clearAisles: () => { + set((state) => { + state.aisles = []; + }) + }, + setPosition: (pointUuid, position) => { let updatedAisle: Aisle | undefined; set((state) => { From 5ae0ec0713a102d318e94f4e61733c42318b5e98 Mon Sep 17 00:00:00 2001 From: Gomathi9520 Date: Tue, 24 Jun 2025 15:38:05 +0530 Subject: [PATCH 2/2] Implement API enhancements for token management and new endpoints - Added token management for various API calls in the factoryBuilder and visualization services. - Updated deleteLayerApi, deleteLineApi, deletePointApi, getLinesApi, setLineApi, updatePointApi, and version control APIs to handle new access tokens from response headers. - Introduced new API endpoints for 3D widget and floating widget data retrieval. - Enhanced error handling and logging for API responses. - Created new sessionValidity and input retrieval components for better session management and data handling. --- .../Dashboard/socket/projectSocketRes.dev.tsx | 2 +- .../properties/ZoneProperties.tsx | 7 +- .../versionHisory/VersionHistory.tsx | 4 +- .../IotInputCards/BarChartInput.tsx | 78 ++++-------------- .../FleetEfficiencyInputComponent.tsx | 82 +++++-------------- .../IotInputCards/FlotingWidgetInput.tsx | 78 +++++------------- .../IotInputCards/LineGrapInput.tsx | 77 ++++------------- .../IotInputCards/PieChartInput.tsx | 61 ++------------ .../IotInputCards/Progress1Input.tsx | 63 ++------------ .../IotInputCards/Progress2Input.tsx | 63 ++------------ .../WarehouseThroughputInputComponent.tsx | 71 +++++----------- .../IotInputCards/Widget2InputCard3D.tsx | 43 ++++++---- .../IotInputCards/Widget3InputCard3D.tsx | 43 ++++++---- .../IotInputCards/Widget4InputCard3D.tsx | 39 +++++---- app/src/components/ui/list/List.tsx | 7 +- .../visualization/RealTimeVisulization.tsx | 9 +- .../widgets/2d/charts/BarGraphComponent.tsx | 29 ++----- .../2d/charts/DoughnutGraphComponent.tsx | 31 ++----- .../widgets/2d/charts/LineGraphComponent.tsx | 30 ++----- .../widgets/2d/charts/PieGraphComponent.tsx | 32 ++------ .../2d/charts/PolarAreaGraphComponent.tsx | 32 ++------ .../widgets/2d/charts/ProgressCard1.tsx | 31 ++----- .../widgets/2d/charts/ProgressCard2.tsx | 31 ++----- .../widgets/3d/Dropped3dWidget.tsx | 5 +- .../widgets/3d/cards/ProductionCapacity.tsx | 34 +++++--- .../widgets/3d/cards/ReturnOfInvestment.tsx | 36 ++++---- .../widgets/3d/cards/StateWorking.tsx | 36 ++++---- .../widgets/3d/cards/Throughput.tsx | 36 ++++---- .../floating/DroppedFloatingWidgets.tsx | 20 +++-- .../cards/FleetEfficiencyComponent.tsx | 35 +++----- .../floating/cards/TotalCardComponent.tsx | 38 +++------ .../cards/WarehouseThroughputComponent.tsx | 47 +++-------- app/src/pages/Project.tsx | 1 + app/src/pages/UserAuth.tsx | 2 +- app/src/pages/sessionValidity.tsx | 15 ++++ app/src/services/dashboard/createProject.ts | 5 ++ app/src/services/dashboard/deleteProject.ts | 5 ++ app/src/services/dashboard/deleteTrash.ts | 5 ++ .../services/dashboard/duplicateProject.ts | 10 ++- app/src/services/dashboard/getAllProjects.ts | 5 ++ app/src/services/dashboard/getTrash.ts | 6 +- app/src/services/dashboard/projectTutorial.ts | 9 +- app/src/services/dashboard/recentlyViewed.ts | 6 +- app/src/services/dashboard/restoreTrash.ts | 5 ++ app/src/services/dashboard/searchProjects.ts | 5 ++ .../services/dashboard/trashSearchProject.ts | 6 +- app/src/services/dashboard/updateProject.ts | 5 ++ app/src/services/dashboard/viewProject.ts | 5 ++ .../factoryBuilder/aisle/createAisleApi.ts | 5 ++ .../factoryBuilder/aisle/deleteAisleApi.ts | 5 ++ .../factoryBuilder/aisle/getAisleApi.ts | 5 ++ .../assest/floorAsset/deleteFloorItemApi.ts | 8 ++ .../assest/floorAsset/getFloorItemsApi.ts | 5 ++ .../assest/floorAsset/setAssetsApi.ts | 5 ++ .../assest/wallAsset/deleteWallItemApi.ts | 8 ++ .../assest/wallAsset/getWallItemsApi.ts | 6 +- .../assest/wallAsset/setWallItemApi.ts | 8 ++ .../factoryBuilder/camera/getCameraApi.ts | 5 ++ .../factoryBuilder/camera/setCameraApi.ts | 8 ++ .../factoryBuilder/collab/getActiveUsers.ts | 9 ++ .../factoryBuilder/collab/getUsersApi.ts | 8 ++ .../factoryBuilder/collab/giveCollabAccess.ts | 8 ++ .../factoryBuilder/comments/addCommentsApi.ts | 6 ++ .../comments/createThreadApi.ts | 5 ++ .../comments/deleteCommentApi.ts | 6 +- .../comments/deleteThreadApi.ts | 6 +- .../comments/editThreadTitleApi.ts | 6 +- .../factoryBuilder/comments/getAllThreads.ts | 5 ++ .../environment/findEnvironment.ts | 6 +- .../environment/setEnvironment.ts | 6 +- .../factoryBuilder/lines/deleteLayerApi.ts | 9 +- .../factoryBuilder/lines/deleteLineApi.ts | 9 +- .../factoryBuilder/lines/deletePointApi.ts | 8 ++ .../factoryBuilder/lines/getLinesApi.ts | 7 +- .../factoryBuilder/lines/setLineApi.ts | 9 ++ .../factoryBuilder/lines/updatePointApi.ts | 9 +- .../versionControl/addVersionApi.ts | 5 ++ .../versionControl/getVersionDataApi.ts | 5 ++ .../versionControl/getVersionHistoryApi.ts | 5 ++ .../factoryBuilder/zones/deleteZoneApi.ts | 9 +- .../factoryBuilder/zones/getZonesApi.ts | 5 ++ .../factoryBuilder/zones/setZonesApi.ts | 9 +- .../products/UpsertProductOrEventApi.ts | 5 ++ .../simulation/products/deleteEventDataApi.ts | 7 ++ .../simulation/products/deleteProductApi.ts | 5 ++ .../simulation/products/getProductApi.ts | 5 ++ .../simulation/products/getallProductsApi.ts | 5 ++ .../simulation/products/renameProductApi.ts | 5 ++ .../services/visulization/zone/add3dWidget.ts | 14 +++- .../visulization/zone/addFloatingWidgets.ts | 18 ++-- .../services/visulization/zone/addWidgets.ts | 6 ++ .../services/visulization/zone/clearPanel.ts | 7 ++ .../visulization/zone/delete3dWidget.ts | 7 ++ .../visulization/zone/deleteFloatingWidget.ts | 6 ++ .../services/visulization/zone/deletePanel.ts | 7 ++ .../visulization/zone/deleteTemplate.ts | 5 ++ .../visulization/zone/deleteWidgetApi.ts | 6 ++ .../visulization/zone/duplicateWidget.ts | 5 ++ .../visulization/zone/get3dWidgetData.ts | 9 +- .../visulization/zone/get3dWidgetInput.ts | 34 ++++++++ .../visulization/zone/getFloatingData.ts | 6 ++ .../zone/getFloatingWidgetInput.ts | 36 ++++++++ .../visulization/zone/getSelect2dZoneData.ts | 8 +- .../services/visulization/zone/getTemplate.ts | 6 ++ .../visulization/zone/getWidgetInputData.ts | 33 ++++++++ .../services/visulization/zone/getZoneData.ts | 26 ++++-- .../services/visulization/zone/getZones.ts | 10 ++- .../visulization/zone/loadTemplate.ts | 6 ++ .../services/visulization/zone/lockPanel.ts | 6 ++ app/src/services/visulization/zone/panel.ts | 5 ++ .../visulization/zone/saveTempleteApi.ts | 6 ++ .../visulization/zone/update3dWidget.ts | 6 ++ .../visulization/zone/zoneCameraUpdation.ts | 11 ++- 113 files changed, 1011 insertions(+), 863 deletions(-) create mode 100644 app/src/pages/sessionValidity.tsx create mode 100644 app/src/services/visulization/zone/get3dWidgetInput.ts create mode 100644 app/src/services/visulization/zone/getFloatingWidgetInput.ts create mode 100644 app/src/services/visulization/zone/getWidgetInputData.ts diff --git a/app/src/components/Dashboard/socket/projectSocketRes.dev.tsx b/app/src/components/Dashboard/socket/projectSocketRes.dev.tsx index 069cd85..981d1ed 100644 --- a/app/src/components/Dashboard/socket/projectSocketRes.dev.tsx +++ b/app/src/components/Dashboard/socket/projectSocketRes.dev.tsx @@ -52,7 +52,7 @@ const ProjectSocketRes = ({ }; const handleDuplicate = async (data: any) => { - console.log("Project duplicate response:", data); + // console.log("Project duplicate response:", data); if (data?.message === "Project Duplicated successfully") { if (setWorkspaceProjects) { const allProjects = await getAllProjects(userId, organization); diff --git a/app/src/components/layout/sidebarRight/properties/ZoneProperties.tsx b/app/src/components/layout/sidebarRight/properties/ZoneProperties.tsx index a5e6d04..7415878 100644 --- a/app/src/components/layout/sidebarRight/properties/ZoneProperties.tsx +++ b/app/src/components/layout/sidebarRight/properties/ZoneProperties.tsx @@ -11,6 +11,7 @@ import { import { zoneCameraUpdate } from "../../../../services/visulization/zone/zoneCameraUpdation"; import { useParams } from "react-router-dom"; import { getUserData } from "../../../../functions/getUserData"; +import { useVersionContext } from "../../../../modules/builder/version/versionContext"; const ZoneProperties: React.FC = () => { const { Edit, setEdit } = useEditPosition(); @@ -20,6 +21,8 @@ const ZoneProperties: React.FC = () => { const { zones, setZones } = useZones(); const { projectId } = useParams(); const { userName, userId, organization, email } = getUserData(); + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion } = selectedVersionStore(); useEffect(() => { setZonePosition(selectedZone.zoneViewPortPosition); @@ -35,7 +38,7 @@ const ZoneProperties: React.FC = () => { viewPortCenter: zoneTarget, }; - let response = await zoneCameraUpdate(zonesdata, organization, projectId); + let response = await zoneCameraUpdate(zonesdata, organization, projectId, selectedVersion?.versionId || ""); // console.log('response: ', response); if (response.message === "zone updated") { setEdit(false); @@ -57,7 +60,7 @@ const ZoneProperties: React.FC = () => { zoneName: newName, }; // Call your API to update the zone - let response = await zoneCameraUpdate(zonesdata, organization, projectId); + let response = await zoneCameraUpdate(zonesdata, organization, projectId, selectedVersion?.versionId || ""); if (response.message === "zone updated") { setSelectedZone((prev) => ({ ...prev, zoneName: newName })); setZones((prevZones: any[]) => diff --git a/app/src/components/layout/sidebarRight/versionHisory/VersionHistory.tsx b/app/src/components/layout/sidebarRight/versionHisory/VersionHistory.tsx index 622f0e9..9d24ba0 100644 --- a/app/src/components/layout/sidebarRight/versionHisory/VersionHistory.tsx +++ b/app/src/components/layout/sidebarRight/versionHisory/VersionHistory.tsx @@ -30,9 +30,9 @@ const VersionHistory = () => { getVersionDataApi(projectId, version.versionId).then((verdionData) => { setSelectedVersion(version); - console.log(verdionData); + // console.log(verdionData); }).catch((err) => { - console.log(err); + // console.log(err); }) }; diff --git a/app/src/components/layout/sidebarRight/visualization/IotInputCards/BarChartInput.tsx b/app/src/components/layout/sidebarRight/visualization/IotInputCards/BarChartInput.tsx index d8cb41e..3b7e67a 100644 --- a/app/src/components/layout/sidebarRight/visualization/IotInputCards/BarChartInput.tsx +++ b/app/src/components/layout/sidebarRight/visualization/IotInputCards/BarChartInput.tsx @@ -12,6 +12,7 @@ import { useSocketStore } from "../../../../../store/builder/store"; import { getUserData } from "../../../../../functions/getUserData"; import { addingWidgets } from "../../../../../services/visulization/zone/addWidgets"; import { useVersionContext } from "../../../../../modules/builder/version/versionContext"; +import { getWidgetInputData } from "../../../../../services/visulization/zone/getWidgetInputData"; type Props = {}; @@ -43,11 +44,11 @@ const BarChartInput = (props: Props) => { setDropDownData(response.data); setLoading(false); } else { - + } } catch (error) { echo.log("Failed to fetch zone data"); - + } }; fetchZoneData(); @@ -56,33 +57,15 @@ const BarChartInput = (props: Props) => { useEffect(() => { const fetchSavedInputes = async () => { if (selectedChartId.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/data?widgetID=${selectedChartId.id}&zoneUuid=${selectedZone.zoneUuid}&projectId=${projectId}&versionId=${selectedVersion?.versionId || ""}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - - setSelections(response.data.Datastructure.measurements); - setDuration(response.data.Datastructure.duration); - setWidgetName(response.data.widgetName); - } else { - - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - + let response = await getWidgetInputData(selectedChartId.id, selectedZone.zoneUuid, projectId, selectedVersion?.versionId || "") + + if (response) { + setSelections(response.Datastructure.measurements); + setDuration(response.Datastructure.duration); + setWidgetName(response.widgetName); } } }; - fetchSavedInputes(); }, [selectedChartId]); @@ -118,47 +101,16 @@ const BarChartInput = (props: Props) => { // visualizationSocket.emit("v1:viz-3D-widget:add", adding3dWidget); // } - let response = await addingWidgets(selectedZone.zoneUuid, organization, newWidget,projectId, selectedVersion?.versionId || ""); - + let response = await addingWidgets(selectedZone.zoneUuid, organization, newWidget, projectId, selectedVersion?.versionId || ""); - if(response.message==="Widget updated successfully"){ + + if (response.message === "Widget updated successfully") { return true; - }else{ - + } else { + return false; }; - // try { - // const response = await axios.post( - // `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/save`, - // { - // headers: { - // Authorization: "Bearer ", - // "Content-Type": "application/json", - // token: localStorage.getItem("token") || "", - // refresh_token: localStorage.getItem("refreshToken") || "", - // }, - // }, - // { - // zoneUuid: selectedZone.zoneUuid, - // organization: organization, - // widget: { - // id: selectedChartId.id, - // panel: selectedChartId.panel, - // widgetName: inputName, - // Data: { - // measurements: inputMeasurement, - // duration: inputDuration, - // }, - // }, - // } as any - // ); - - // } catch (error) { - // echo.error("Failed to send input"); - // - // return false; - // } }; const handleSelect = async ( @@ -190,7 +142,7 @@ const BarChartInput = (props: Props) => { }; const handleNameChange = async (name: any) => { - + if (await sendInputes(selections, duration, name)) { setWidgetName(name); diff --git a/app/src/components/layout/sidebarRight/visualization/IotInputCards/FleetEfficiencyInputComponent.tsx b/app/src/components/layout/sidebarRight/visualization/IotInputCards/FleetEfficiencyInputComponent.tsx index da01d0c..fa6ef5c 100644 --- a/app/src/components/layout/sidebarRight/visualization/IotInputCards/FleetEfficiencyInputComponent.tsx +++ b/app/src/components/layout/sidebarRight/visualization/IotInputCards/FleetEfficiencyInputComponent.tsx @@ -10,6 +10,8 @@ import RenameInput from "../../../../ui/inputs/RenameInput"; import { getUserData } from "../../../../../functions/getUserData"; import { addingFloatingWidgets } from "../../../../../services/visulization/zone/addFloatingWidgets"; import { useParams } from "react-router-dom"; +import { useVersionContext } from "../../../../../modules/builder/version/versionContext"; +import { getFloatingWidgetInput } from "../../../../../services/visulization/zone/getFloatingWidgetInput"; type Props = {}; @@ -27,7 +29,8 @@ const FleetEfficiencyInputComponent = (props: Props) => { const iotApiUrl = process.env.REACT_APP_IOT_SOCKET_SERVER_URL; const { userName, userId, organization, email } = getUserData(); const [isLoading, setLoading] = useState(true); - + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion } = selectedVersionStore(); const { projectId } = useParams() const isSelected = () => { }; @@ -38,15 +41,15 @@ const FleetEfficiencyInputComponent = (props: Props) => { const response = await axios.get(`http://${iotApiUrl}/floatinput`); setLoading(true); if (response.status === 200) { - // console.log("dropdown data:", response.data); + // setDropDownData(response.data); setLoading(false); } else { - // console.log("Unexpected response:", response); + // } } catch (error) { echo.error("Failed to fetch zone data"); - console.error("There was an error!", error); + } }; fetchZoneData(); @@ -55,30 +58,15 @@ const FleetEfficiencyInputComponent = (props: Props) => { useEffect(() => { const fetchSavedInputes = async () => { if (selectedChartId.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/A_floatWidget/${selectedChartId.id}/${organization}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - setSelections(response.data.Data.measurements); - setDuration(response.data.Data.duration); - setWidgetName(response.data.header); - } else { - // console.log("Unexpected response:", response); - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - - console.error("There was an error!", error); + let response = await getFloatingWidgetInput(selectedChartId.id, organization,projectId,selectedVersion?.versionId||"") + + if (response) { + + setSelections(response.Data.Datastructure.measurements); + setDuration(response.Data.Datastructure.duration); + setWidgetName(response.Data.header); } + } }; @@ -105,43 +93,17 @@ const FleetEfficiencyInputComponent = (props: Props) => { duration: inputDuration, }, } - const response = await addingFloatingWidgets(selectedZone.zoneUuid, organization, newWidget, projectId) - // console.log('response: ', response); + + + const response = await addingFloatingWidgets(selectedZone.zoneUuid, organization, newWidget, projectId, selectedVersion?.versionId || "") + if (response.message === "Widget updated successfully") { return true; } else { - console.log("Unexpected response:", response); + return false; } - // try { - // const response = await axios.post( - // `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/floatWidget/save`, - // { - // organization: organization, - // zoneUuid: selectedZone.zoneUuid, - // widget: { - // id: selectedChartId.id, - // header: inputName, - // Data: { - // measurements: inputMeasurement, - // duration: inputDuration, - // }, - // }, - // } as any - // ); - // if (response.status === 200) { - // return true; - // } else { - // console.log("Unexpected response:", response); - // return false; - // } - // } catch (error) { - // echo.error("Failed to send input"); - - // console.error("There was an error!", error); - // return false; - // } }; const handleSelect = async ( @@ -156,7 +118,7 @@ const FleetEfficiencyInputComponent = (props: Props) => { newSelections[inputKey] = selectedData; } // setMeasurements(newSelections); // Update Zustand store - // console.log(newSelections); + // if (await sendInputes(newSelections, duration, widgetName)) { setSelections(newSelections); } @@ -173,7 +135,7 @@ const FleetEfficiencyInputComponent = (props: Props) => { }; const handleNameChange = async (name: any) => { - console.log("name change requested", name); + if (await sendInputes(selections, duration, name)) { setWidgetName(name); diff --git a/app/src/components/layout/sidebarRight/visualization/IotInputCards/FlotingWidgetInput.tsx b/app/src/components/layout/sidebarRight/visualization/IotInputCards/FlotingWidgetInput.tsx index 826fbae..c8247b6 100644 --- a/app/src/components/layout/sidebarRight/visualization/IotInputCards/FlotingWidgetInput.tsx +++ b/app/src/components/layout/sidebarRight/visualization/IotInputCards/FlotingWidgetInput.tsx @@ -10,6 +10,8 @@ import RenameInput from "../../../../ui/inputs/RenameInput"; import { getUserData } from "../../../../../functions/getUserData"; import { addingFloatingWidgets } from "../../../../../services/visulization/zone/addFloatingWidgets"; import { useParams } from "react-router-dom"; +import { useVersionContext } from "../../../../../modules/builder/version/versionContext"; +import { getFloatingWidgetInput } from "../../../../../services/visulization/zone/getFloatingWidgetInput"; type Props = {}; @@ -28,6 +30,8 @@ const FlotingWidgetInput = (props: Props) => { const { userName, userId, organization, email } = getUserData(); const [isLoading, setLoading] = useState(true); const { projectId } = useParams() + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion } = selectedVersionStore(); useEffect(() => { const fetchZoneData = async () => { @@ -35,16 +39,16 @@ const FlotingWidgetInput = (props: Props) => { setLoading(true); const response = await axios.get(`http://${iotApiUrl}/floatinput`); if (response.status === 200) { - // console.log("dropdown data:", response.data); + // setDropDownData(response.data); setLoading(false); } else { - // console.log("Unexpected response:", response); + // } } catch (error) { echo.error("Failed to fetch zone data"); - console.error("There was an error!", error); + } }; fetchZoneData(); @@ -53,30 +57,14 @@ const FlotingWidgetInput = (props: Props) => { useEffect(() => { const fetchSavedInputes = async () => { if (selectedChartId.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/A_floatWidget/${selectedChartId.id}/${organization}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - setSelections(response.data.Data.measurements); - setDuration(response.data.Data.duration); - setWidgetName(response.data.header); - } else { - // console.log("Unexpected response:", response); - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - - console.error("There was an error!", error); + let response = await getFloatingWidgetInput(selectedChartId.id, organization, projectId, selectedVersion?.versionId || "") + + if (response) { + setSelections(response.Data.Datastructure.measurements); + setDuration(response.Data.Datastructure.duration); + setWidgetName(response.Data.header); } + } }; @@ -104,42 +92,16 @@ const FlotingWidgetInput = (props: Props) => { }, } - const response = await addingFloatingWidgets(selectedZone.zoneUuid, organization, newWidget, projectId) - // console.log('response: ', response); + + const response = await addingFloatingWidgets(selectedZone.zoneUuid, organization, newWidget, projectId, selectedVersion?.versionId || "") + if (response.message === "Widget updated successfully") { return true; } else { - // console.log("Unexpected response:", response); + // return false; } - // try { - // const response = await axios.post( - // `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/floatWidget/save`, - // { - // organization: organization, - // zoneUuid: selectedZone.zoneUuid, - // widget: { - // id: selectedChartId.id, - // header: inputName, - // Data: { - // measurements: inputMeasurement, - // duration: inputDuration, - // }, - // }, - // } as any - // ); - // if (response.status === 200) { - // return true; - // } else { - // console.log("Unexpected response:", response); - // return false; - // } - // } catch (error) { - // echo.error("Failed to send input"); - // console.error("There was an error!", error); - // return false; - // } }; const handleSelect = async ( @@ -154,7 +116,7 @@ const FlotingWidgetInput = (props: Props) => { newSelections[inputKey] = selectedData; } // setMeasurements(newSelections); // Update Zustand store - // console.log(newSelections); + // if (await sendInputes(newSelections, duration, widgetName)) { setSelections(newSelections); } @@ -171,7 +133,7 @@ const FlotingWidgetInput = (props: Props) => { }; const handleNameChange = async (name: any) => { - console.log("name change requested", name); + if (await sendInputes(selections, duration, name)) { setWidgetName(name); diff --git a/app/src/components/layout/sidebarRight/visualization/IotInputCards/LineGrapInput.tsx b/app/src/components/layout/sidebarRight/visualization/IotInputCards/LineGrapInput.tsx index 83cfb75..646ba88 100644 --- a/app/src/components/layout/sidebarRight/visualization/IotInputCards/LineGrapInput.tsx +++ b/app/src/components/layout/sidebarRight/visualization/IotInputCards/LineGrapInput.tsx @@ -128,6 +128,7 @@ import { useSocketStore } from "../../../../../store/builder/store"; import { getUserData } from "../../../../../functions/getUserData"; import { addingWidgets } from "../../../../../services/visulization/zone/addWidgets"; import { useVersionContext } from "../../../../../modules/builder/version/versionContext"; +import { getWidgetInputData } from "../../../../../services/visulization/zone/getWidgetInputData"; type Props = {}; @@ -159,11 +160,11 @@ const LineGrapInput = (props: Props) => { setDropDownData(response.data); setLoading(false); } else { - + } } catch (error) { echo.error("Failed to fetch zone data"); - + } }; fetchZoneData(); @@ -172,30 +173,14 @@ const LineGrapInput = (props: Props) => { useEffect(() => { const fetchSavedInputes = async () => { if (selectedChartId.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/data?widgetID=${selectedChartId.id}&zoneUuid=${selectedZone.zoneUuid}&projectId=${projectId}&versionId=${selectedVersion?.versionId || ""}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - - setSelections(response.data.Datastructure.measurements); - setDuration(response.data.Datastructure.duration); - setWidgetName(response.data.widgetName); - } else { - - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - + let response = await getWidgetInputData(selectedChartId.id, selectedZone.zoneUuid, projectId, selectedVersion?.versionId || "") + + if (response) { + setSelections(response.Datastructure.measurements); + setDuration(response.Datastructure.duration); + setWidgetName(response.widgetName); } + } }; @@ -224,7 +209,7 @@ const LineGrapInput = (props: Props) => { duration: inputDuration, } } - + // const adding3dWidget = { // organization: organization, // widget: newWidget, @@ -235,45 +220,15 @@ const LineGrapInput = (props: Props) => { // visualizationSocket.emit("v1:viz-3D-widget:add", adding3dWidget); // } let response = await addingWidgets(selectedZone.zoneUuid, organization, newWidget, projectId, selectedVersion?.versionId || ""); - + if (response.message === "Widget updated successfully") { - + return true; } else { - + return false; } - // try { - // const response = await axios.post( - // `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/save`, - // { - // headers: { - // Authorization: "Bearer ", - // "Content-Type": "application/json", - // token: localStorage.getItem("token") || "", - // refresh_token: localStorage.getItem("refreshToken") || "", - // }, - // }, - // { - // zoneUuid: selectedZone.zoneUuid, - // organization: organization, - // widget: { - // id: selectedChartId.id, - // panel: selectedChartId.panel, - // widgetName: inputName, - // Data: { - // measurements: inputMeasurement, - // duration: inputDuration, - // }, - // }, - // } as any - // ); - - // } catch (error) { - // echo.error("Failed to send input"); - // - // return false; - // } + }; const handleSelect = async ( @@ -305,7 +260,7 @@ const LineGrapInput = (props: Props) => { }; const handleNameChange = async (name: any) => { - + if (await sendInputes(selections, duration, name)) { setWidgetName(name); diff --git a/app/src/components/layout/sidebarRight/visualization/IotInputCards/PieChartInput.tsx b/app/src/components/layout/sidebarRight/visualization/IotInputCards/PieChartInput.tsx index 701be3a..04ac73b 100644 --- a/app/src/components/layout/sidebarRight/visualization/IotInputCards/PieChartInput.tsx +++ b/app/src/components/layout/sidebarRight/visualization/IotInputCards/PieChartInput.tsx @@ -12,6 +12,7 @@ import { useSocketStore } from "../../../../../store/builder/store"; import { getUserData } from "../../../../../functions/getUserData"; import { addingWidgets } from "../../../../../services/visulization/zone/addWidgets"; import { useVersionContext } from "../../../../../modules/builder/version/versionContext"; +import { getWidgetInputData } from "../../../../../services/visulization/zone/getWidgetInputData"; type Props = {}; @@ -56,30 +57,14 @@ const PieChartInput = (props: Props) => { useEffect(() => { const fetchSavedInputes = async () => { if (selectedChartId.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/data?widgetID=${selectedChartId.id}&zoneUuid=${selectedZone.zoneUuid}&projectId=${projectId}&versionId=${selectedVersion?.versionId || ""}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - - setSelections(response.data.Datastructure.measurements); - setDuration(response.data.Datastructure.duration); - setWidgetName(response.data.widgetName); - } else { - - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); + let response = await getWidgetInputData(selectedChartId.id, selectedZone.zoneUuid, projectId, selectedVersion?.versionId || "") + if (response) { + setSelections(response.Datastructure.measurements); + setDuration(response.Datastructure.duration); + setWidgetName(response.widgetName); } + } }; @@ -129,37 +114,7 @@ const PieChartInput = (props: Props) => { return false; } - // try { - // const response = await axios.post( - // `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/save`, - // { - // headers: { - // Authorization: "Bearer ", - // "Content-Type": "application/json", - // token: localStorage.getItem("token") || "", - // refresh_token: localStorage.getItem("refreshToken") || "", - // }, - // }, - // { - // zoneUuid: selectedZone.zoneUuid, - // organization: organization, - // widget: { - // id: selectedChartId.id, - // panel: selectedChartId.panel, - // widgetName: inputName, - // Data: { - // measurements: inputMeasurement, - // duration: inputDuration, - // }, - // }, - // } as any - // ); - - // } catch (error) { - // echo.error("Failed to send input"); - // - // return false; - // } + }; const handleSelect = async ( diff --git a/app/src/components/layout/sidebarRight/visualization/IotInputCards/Progress1Input.tsx b/app/src/components/layout/sidebarRight/visualization/IotInputCards/Progress1Input.tsx index b2103b5..1f573b3 100644 --- a/app/src/components/layout/sidebarRight/visualization/IotInputCards/Progress1Input.tsx +++ b/app/src/components/layout/sidebarRight/visualization/IotInputCards/Progress1Input.tsx @@ -12,6 +12,7 @@ import { useSocketStore } from "../../../../../store/builder/store"; import { getUserData } from "../../../../../functions/getUserData"; import { addingWidgets } from "../../../../../services/visulization/zone/addWidgets"; import { useVersionContext } from "../../../../../modules/builder/version/versionContext"; +import { getWidgetInputData } from "../../../../../services/visulization/zone/getWidgetInputData"; type Props = {}; @@ -56,30 +57,14 @@ const Progress1Input = (props: Props) => { useEffect(() => { const fetchSavedInputes = async () => { if (selectedChartId.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/data?widgetID=${selectedChartId.id}&zoneUuid=${selectedZone.zoneUuid}&projectId=${projectId}&versionId=${selectedVersion?.versionId || ""}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - - setSelections(response.data.Datastructure.measurements); - setDuration(response.data.Datastructure.duration); - setWidgetName(response.data.widgetName); - } else { - - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - + let response = await getWidgetInputData(selectedChartId.id, selectedZone.zoneUuid, projectId, selectedVersion?.versionId || "") + + if (response) { + setSelections(response.Datastructure.measurements); + setDuration(response.Datastructure.duration); + setWidgetName(response.widgetName); } + } }; @@ -127,37 +112,7 @@ const Progress1Input = (props: Props) => { return false; } - // try { - // const response = await axios.post( - // `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/save`, - // { - // headers: { - // Authorization: "Bearer ", - // "Content-Type": "application/json", - // token: localStorage.getItem("token") || "", - // refresh_token: localStorage.getItem("refreshToken") || "", - // }, - // }, - // { - // zoneUuid: selectedZone.zoneUuid, - // organization: organization, - // widget: { - // id: selectedChartId.id, - // panel: selectedChartId.panel, - // widgetName: inputName, - // Data: { - // measurements: inputMeasurement, - // duration: inputDuration, - // }, - // }, - // } as any - // ); - - // } catch (error) { - // echo.error("Failed to send input"); - // - // return false; - // } + }; const handleSelect = async ( diff --git a/app/src/components/layout/sidebarRight/visualization/IotInputCards/Progress2Input.tsx b/app/src/components/layout/sidebarRight/visualization/IotInputCards/Progress2Input.tsx index 3382ebe..f1af380 100644 --- a/app/src/components/layout/sidebarRight/visualization/IotInputCards/Progress2Input.tsx +++ b/app/src/components/layout/sidebarRight/visualization/IotInputCards/Progress2Input.tsx @@ -12,6 +12,7 @@ import { useSocketStore } from "../../../../../store/builder/store"; import { getUserData } from "../../../../../functions/getUserData"; import { addingWidgets } from "../../../../../services/visulization/zone/addWidgets"; import { useVersionContext } from "../../../../../modules/builder/version/versionContext"; +import { getWidgetInputData } from "../../../../../services/visulization/zone/getWidgetInputData"; type Props = {}; @@ -56,30 +57,14 @@ const Progress2Input = (props: Props) => { useEffect(() => { const fetchSavedInputes = async () => { if (selectedChartId.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/data?widgetID=${selectedChartId.id}&zoneUuid=${selectedZone.zoneUuid}&projectId=${projectId}&versionId=${selectedVersion?.versionId || ""}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - - setSelections(response.data.Datastructure.measurements); - setDuration(response.data.Datastructure.duration); - setWidgetName(response.data.widgetName); - } else { - - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - + let response = await getWidgetInputData(selectedChartId.id, selectedZone.zoneUuid, projectId, selectedVersion?.versionId || "") + + if (response) { + setSelections(response.Datastructure.measurements); + setDuration(response.Datastructure.duration); + setWidgetName(response.widgetName); } + } }; @@ -129,37 +114,7 @@ const Progress2Input = (props: Props) => { return false; } - // try { - // const response = await axios.post( - // `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/save`, - // { - // headers: { - // Authorization: "Bearer ", - // "Content-Type": "application/json", - // token: localStorage.getItem("token") || "", - // refresh_token: localStorage.getItem("refreshToken") || "", - // }, - // }, - // { - // zoneUuid: selectedZone.zoneUuid, - // organization: organization, - // widget: { - // id: selectedChartId.id, - // panel: selectedChartId.panel, - // widgetName: inputName, - // Data: { - // measurements: inputMeasurement, - // duration: inputDuration, - // }, - // }, - // } as any - // ); - - // } catch (error) { - // echo.error("Failed to send input"); - // - // return false; - // } + }; const handleSelect = async ( diff --git a/app/src/components/layout/sidebarRight/visualization/IotInputCards/WarehouseThroughputInputComponent.tsx b/app/src/components/layout/sidebarRight/visualization/IotInputCards/WarehouseThroughputInputComponent.tsx index 1eb77bc..e82aa58 100644 --- a/app/src/components/layout/sidebarRight/visualization/IotInputCards/WarehouseThroughputInputComponent.tsx +++ b/app/src/components/layout/sidebarRight/visualization/IotInputCards/WarehouseThroughputInputComponent.tsx @@ -10,6 +10,8 @@ import RenameInput from "../../../../ui/inputs/RenameInput"; import { getUserData } from "../../../../../functions/getUserData"; import { addingFloatingWidgets } from "../../../../../services/visulization/zone/addFloatingWidgets"; import { useParams } from "react-router-dom"; +import { useVersionContext } from "../../../../../modules/builder/version/versionContext"; +import { getFloatingWidgetInput } from "../../../../../services/visulization/zone/getFloatingWidgetInput"; type Props = {}; @@ -28,6 +30,8 @@ const WarehouseThroughputInputComponent = (props: Props) => { const { userName, userId, organization, email } = getUserData(); const [isLoading, setLoading] = useState(true); const { projectId } = useParams(); + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion } = selectedVersionStore(); useEffect(() => { const fetchZoneData = async () => { @@ -35,15 +39,15 @@ const WarehouseThroughputInputComponent = (props: Props) => { setLoading(true); const response = await axios.get(`http://${iotApiUrl}/floatinput`); if (response.status === 200) { - // console.log("dropdown data:", response.data); + // setDropDownData(response.data); setLoading(false); } else { - // console.log("Unexpected response:", response); + // } } catch (error) { echo.error("Failed to fetch zone data"); - console.error("There was an error!", error); + } }; fetchZoneData(); @@ -52,29 +56,14 @@ const WarehouseThroughputInputComponent = (props: Props) => { useEffect(() => { const fetchSavedInputes = async () => { if (selectedChartId.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/A_floatWidget/${selectedChartId.id}/${organization}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - setSelections(response.data.Data.measurements); - setDuration(response.data.Data.duration); - setWidgetName(response.data.header); - } else { - // console.log("Unexpected response:", response); - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - console.error("There was an error!", error); + let response = await getFloatingWidgetInput(selectedChartId.id, organization,projectId,selectedVersion?.versionId||"") + + if (response) { + setSelections(response.Data.Datastructure.measurements); + setDuration(response.Data.Datastructure.duration); + setWidgetName(response.Data.header); } + } }; @@ -102,36 +91,16 @@ const WarehouseThroughputInputComponent = (props: Props) => { duration: inputDuration, }, } - const response = await addingFloatingWidgets(selectedZone.zoneUuid, organization, newWidget,projectId) - // console.log('response: ', response); + + const response = await addingFloatingWidgets(selectedZone.zoneUuid, organization, newWidget, projectId, selectedVersion?.versionId || "") + // if (response.message === "Widget updated successfully") { return true; } else { - // console.log("Unexpected response:", response); + // return false; } - // try { - // const response = await axios.post( - // `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/floatWidget/save`, - // { - // organization: organization, - // zoneUuid: selectedZone.zoneUuid, - // widget: { - // id: selectedChartId.id, - // header: inputName, - // Data: { - // measurements: inputMeasurement, - // duration: inputDuration, - // }, - // }, - // } as any - // ); - // } catch (error) { - // echo.error("Failed to send input"); - // console.error("There was an error!", error); - // return false; - // } }; const handleSelect = async ( @@ -146,7 +115,7 @@ const WarehouseThroughputInputComponent = (props: Props) => { newSelections[inputKey] = selectedData; } // setMeasurements(newSelections); // Update Zustand store - // console.log(newSelections); + // if (await sendInputes(newSelections, duration, widgetName)) { setSelections(newSelections); } @@ -163,7 +132,7 @@ const WarehouseThroughputInputComponent = (props: Props) => { }; const handleNameChange = async (name: any) => { - // console.log("name change requested", name); + // if (await sendInputes(selections, duration, name)) { setWidgetName(name); diff --git a/app/src/components/layout/sidebarRight/visualization/IotInputCards/Widget2InputCard3D.tsx b/app/src/components/layout/sidebarRight/visualization/IotInputCards/Widget2InputCard3D.tsx index defe09a..79fd00e 100644 --- a/app/src/components/layout/sidebarRight/visualization/IotInputCards/Widget2InputCard3D.tsx +++ b/app/src/components/layout/sidebarRight/visualization/IotInputCards/Widget2InputCard3D.tsx @@ -8,6 +8,10 @@ import { useWidgetStore } from "../../../../../store/useWidgetStore"; import axios from "axios"; import RenameInput from "../../../../ui/inputs/RenameInput"; import { getUserData } from "../../../../../functions/getUserData"; +import { get3dWidgetInput } from "../../../../../services/visulization/zone/get3dWidgetInput"; +import { adding3dWidgets } from "../../../../../services/visulization/zone/add3dWidget"; +import { useVersionContext } from "../../../../../modules/builder/version/versionContext"; +import { useParams } from "react-router-dom"; type Props = {}; @@ -24,6 +28,9 @@ const Widget2InputCard3D = (props: Props) => { const iotApiUrl = process.env.REACT_APP_IOT_SOCKET_SERVER_URL; const { userName, userId, organization, email } = getUserData(); const [isLoading, setLoading] = useState(true); + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion } = selectedVersionStore(); + const { projectId } = useParams() useEffect(() => { const fetchZoneData = async () => { @@ -48,21 +55,14 @@ const Widget2InputCard3D = (props: Props) => { useEffect(() => { const fetchSavedInputes = async () => { if (selectedChartId.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/widget3D/${selectedChartId.id}/${organization}` - ); - if (response.status === 200) { - setSelections(response.data.Data.measurements); - setDuration(response.data.Data.duration); - setWidgetName(response.data.widgetName); - } else { - // console.log("Unexpected response:", response); - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - console.error("There was an error!", error); + let response = await get3dWidgetInput(selectedChartId.id, organization) + console.log('response: ', response); + if (response) { + setSelections(response.data.Data.measurements); + setDuration(response.data.Data.duration); + setWidgetName(response.data.widgetName); } + } }; @@ -81,6 +81,17 @@ const Widget2InputCard3D = (props: Props) => { inputDuration: any, inputName: any ) => { + // let newWidget = { + // id: selectedChartId.id, + // widgetName: inputName, + // Data: { + // measurements: inputMeasurement, + // duration: inputDuration, + // }, + // } + + // let response = await adding3dWidgets(selectedZone.zoneUuid, organization, newWidget,projectId, selectedVersion?.versionId || "") + // console.log('response: ', response); try { const response = await axios.post( `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget3d/save`, @@ -100,7 +111,7 @@ const Widget2InputCard3D = (props: Props) => { if (response.status === 200) { return true; } else { - console.log("Unexpected response:", response); + // console.log("Unexpected response:", response); return false; } } catch (error) { @@ -139,7 +150,7 @@ const Widget2InputCard3D = (props: Props) => { }; const handleNameChange = async (name: any) => { - console.log("name change requested", name); + // console.log("name change requested", name); if (await sendInputes(selections, duration, name)) { setWidgetName(name); diff --git a/app/src/components/layout/sidebarRight/visualization/IotInputCards/Widget3InputCard3D.tsx b/app/src/components/layout/sidebarRight/visualization/IotInputCards/Widget3InputCard3D.tsx index 51f9cd7..3e0ddde 100644 --- a/app/src/components/layout/sidebarRight/visualization/IotInputCards/Widget3InputCard3D.tsx +++ b/app/src/components/layout/sidebarRight/visualization/IotInputCards/Widget3InputCard3D.tsx @@ -8,6 +8,10 @@ import { useWidgetStore } from "../../../../../store/useWidgetStore"; import axios from "axios"; import RenameInput from "../../../../ui/inputs/RenameInput"; import { getUserData } from "../../../../../functions/getUserData"; +import { get3dWidgetInput } from "../../../../../services/visulization/zone/get3dWidgetInput"; +import { useVersionContext } from "../../../../../modules/builder/version/versionContext"; +import { useParams } from "react-router-dom"; +import { adding3dWidgets } from "../../../../../services/visulization/zone/add3dWidget"; const Widget3InputCard3D = () => { const { selectedChartId } = useWidgetStore(); @@ -22,6 +26,9 @@ const Widget3InputCard3D = () => { const iotApiUrl = process.env.REACT_APP_IOT_SOCKET_SERVER_URL; const { userName, userId, organization, email } = getUserData(); const [isLoading, setLoading] = useState(true); + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion } = selectedVersionStore(); + const { projectId } = useParams() useEffect(() => { const fetchZoneData = async () => { @@ -46,21 +53,14 @@ const Widget3InputCard3D = () => { useEffect(() => { const fetchSavedInputes = async () => { if (selectedChartId.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/widget3D/${selectedChartId.id}/${organization}` - ); - if (response.status === 200) { - setSelections(response.data.Data.measurements); - setDuration(response.data.Data.duration); - setWidgetName(response.data.widgetName); - } else { - // console.log("Unexpected response:", response); - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - console.error("There was an error!", error); + let response = await get3dWidgetInput(selectedChartId.id, organization) + console.log('response: ', response); + if (response) { + setSelections(response.data.Data.measurements); + setDuration(response.data.Data.duration); + setWidgetName(response.data.widgetName); } + } }; @@ -78,6 +78,19 @@ const Widget3InputCard3D = () => { inputDuration: any, inputName: any ) => { + + // let newWidget = { + // id: selectedChartId.id, + // widgetName: inputName, + // Data: { + // measurements: inputMeasurement, + // duration: inputDuration, + // }, + // } + + // let response = await adding3dWidgets(selectedZone.zoneUuid, organization, newWidget, projectId, selectedVersion?.versionId || "") + // console.log('response: ', response); + try { const response = await axios.post( `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget3d/save`, @@ -132,7 +145,7 @@ const Widget3InputCard3D = () => { }; const handleNameChange = async (name: any) => { - console.log("name change requested", name); + // console.log("name change requested", name); if (await sendInputes(selections, duration, name)) { setWidgetName(name); diff --git a/app/src/components/layout/sidebarRight/visualization/IotInputCards/Widget4InputCard3D.tsx b/app/src/components/layout/sidebarRight/visualization/IotInputCards/Widget4InputCard3D.tsx index ade052b..2da2e61 100644 --- a/app/src/components/layout/sidebarRight/visualization/IotInputCards/Widget4InputCard3D.tsx +++ b/app/src/components/layout/sidebarRight/visualization/IotInputCards/Widget4InputCard3D.tsx @@ -8,6 +8,10 @@ import { useWidgetStore } from "../../../../../store/useWidgetStore"; import axios from "axios"; import RenameInput from "../../../../ui/inputs/RenameInput"; import { getUserData } from "../../../../../functions/getUserData"; +import { get3dWidgetInput } from "../../../../../services/visulization/zone/get3dWidgetInput"; +import { useVersionContext } from "../../../../../modules/builder/version/versionContext"; +import { useParams } from "react-router-dom"; +import { adding3dWidgets } from "../../../../../services/visulization/zone/add3dWidget"; type Props = {}; @@ -24,6 +28,9 @@ const Widget4InputCard3D = (props: Props) => { const iotApiUrl = process.env.REACT_APP_IOT_SOCKET_SERVER_URL; const { userName, userId, organization, email } = getUserData(); const [isLoading, setLoading] = useState(true); + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion } = selectedVersionStore(); + const { projectId } = useParams() useEffect(() => { const fetchZoneData = async () => { @@ -48,21 +55,14 @@ const Widget4InputCard3D = (props: Props) => { useEffect(() => { const fetchSavedInputes = async () => { if (selectedChartId.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/widget3D/${selectedChartId.id}/${organization}` - ); - if (response.status === 200) { - setSelections(response.data.Data.measurements); - setDuration(response.data.Data.duration); - setWidgetName(response.data.widgetName); - } else { - // console.log("Unexpected response:", response); - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - console.error("There was an error!", error); + let response = await get3dWidgetInput(selectedChartId.id, organization) + console.log('response: ', response); + if (response) { + setSelections(response.data.Data.measurements); + setDuration(response.data.Data.duration); + setWidgetName(response.data.widgetName); } + } }; @@ -81,6 +81,17 @@ const Widget4InputCard3D = (props: Props) => { inputDuration: any, inputName: any ) => { + // let newWidget = { + // id: selectedChartId.id, + // widgetName: inputName, + // Data: { + // measurements: inputMeasurement, + // duration: inputDuration, + // }, + // } + + // let response = await adding3dWidgets(selectedZone.zoneUuid, organization, newWidget, projectId, selectedVersion?.versionId || "") + // console.log('response: ', response); try { const response = await axios.post( `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget3d/save`, diff --git a/app/src/components/ui/list/List.tsx b/app/src/components/ui/list/List.tsx index 4171b62..0d81bda 100644 --- a/app/src/components/ui/list/List.tsx +++ b/app/src/components/ui/list/List.tsx @@ -21,6 +21,7 @@ import { setAssetsApi } from "../../../services/factoryBuilder/assest/floorAsset import { useParams } from "react-router-dom"; import { getUserData } from "../../../functions/getUserData"; import { useSceneContext } from "../../../modules/scene/sceneContext"; +import { useVersionContext } from "../../../modules/builder/version/versionContext"; interface Asset { id: string; @@ -52,6 +53,8 @@ const List: React.FC = ({ items = [], remove }) => { const { assetStore } = useSceneContext(); const { setName } = assetStore(); const { organization } = getUserData(); + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion } = selectedVersionStore(); useEffect(() => { useSelectedZoneStore.getState().setSelectedZone({ @@ -81,7 +84,7 @@ const List: React.FC = ({ items = [], remove }) => { setSubModule("zoneProperties"); - let response = await getZoneData(id, organization, projectId); + let response = await getZoneData(id, organization, projectId, selectedVersion?.versionId || ""); setSelectedZone({ zoneName: response?.zoneName, activeSides: response?.activeSides ?? [], @@ -117,7 +120,7 @@ const List: React.FC = ({ items = [], remove }) => { zoneUuid: selectedZone.zoneUuid, zoneName: newName, }; - const response = await zoneCameraUpdate(zonesdata, organization, projectId); + const response = await zoneCameraUpdate(zonesdata, organization, projectId, selectedVersion?.versionId || ""); if (response.message === "zone updated") { setSelectedZone((prev) => ({ ...prev, zoneName: newName })); setZones((prevZones: any[]) => diff --git a/app/src/modules/visualization/RealTimeVisulization.tsx b/app/src/modules/visualization/RealTimeVisulization.tsx index 67d4dab..4f24e05 100644 --- a/app/src/modules/visualization/RealTimeVisulization.tsx +++ b/app/src/modules/visualization/RealTimeVisulization.tsx @@ -14,7 +14,7 @@ import EditWidgetOption from "../../components/ui/menu/EditWidgetOption"; import { useEditWidgetOptionsStore, useRightClickSelected, useRightSelected, } from "../../store/visualization/useZone3DWidgetStore"; import OuterClick from "../../utils/outerClick"; import { useWidgetStore } from "../../store/useWidgetStore"; -import { useParams } from "react-router-dom"; +import { useNavigate, useParams } from "react-router-dom"; import { getUserData } from "../../functions/getUserData"; import { useVersionContext } from "../builder/version/versionContext"; @@ -63,6 +63,7 @@ const RealTimeVisulization: React.FC = () => { const { selectedVersionStore } = useVersionContext(); const { selectedVersion } = selectedVersionStore(); const { projectId } = useParams(); + const navigate = useNavigate(); OuterClick({ contextClassName: [ @@ -81,6 +82,12 @@ const RealTimeVisulization: React.FC = () => { useEffect(() => { if (!projectId || !selectedVersion) return; getZone2dData(organization, projectId, selectedVersion?.versionId || '').then((response) => { + if (!response) return; + // if (response.status === 401) { + // console.log("force logout"); + // navigate("/"); + // return; + // } if (!Array.isArray(response)) { return; } diff --git a/app/src/modules/visualization/widgets/2d/charts/BarGraphComponent.tsx b/app/src/modules/visualization/widgets/2d/charts/BarGraphComponent.tsx index cc3d922..77001eb 100644 --- a/app/src/modules/visualization/widgets/2d/charts/BarGraphComponent.tsx +++ b/app/src/modules/visualization/widgets/2d/charts/BarGraphComponent.tsx @@ -11,6 +11,7 @@ import useChartStore from "../../../../../store/visualization/useChartStore"; import { useSelectedZoneStore } from "../../../../../store/visualization/useZoneStore"; import { useParams } from "react-router-dom"; import { useVersionContext } from "../../../../builder/version/versionContext"; +import { getWidgetInputData } from "../../../../../services/visulization/zone/getWidgetInputData"; interface ChartComponentProps { id: string; @@ -181,30 +182,14 @@ const BarGraphComponent = ({ const fetchSavedInputes = async () => { if (id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/data?widgetID=${id}&zoneUuid=${selectedZone.zoneUuid}&projectId=${projectId}&versionId=${selectedVersion?.versionId || ''}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - - setmeasurements(response.data.Datastructure.measurements); - setDuration(response.data.Datastructure.duration); - setName(response.data.widgetName); - } else { - echo.error("Failed to fetch saved inputs"); - - } - } catch (error) { + let response = await getWidgetInputData(id, selectedZone.zoneUuid, projectId, selectedVersion?.versionId || "") + if (response) { + setmeasurements(response.Datastructure.measurements); + setDuration(response.Datastructure.duration); + setName(response.widgetName); } + } }; diff --git a/app/src/modules/visualization/widgets/2d/charts/DoughnutGraphComponent.tsx b/app/src/modules/visualization/widgets/2d/charts/DoughnutGraphComponent.tsx index 028ce95..69b92ac 100644 --- a/app/src/modules/visualization/widgets/2d/charts/DoughnutGraphComponent.tsx +++ b/app/src/modules/visualization/widgets/2d/charts/DoughnutGraphComponent.tsx @@ -10,6 +10,7 @@ import { useParams } from "react-router-dom"; import { useSelectedZoneStore } from "../../../../../store/visualization/useZoneStore"; import { getUserData } from "../../../../../functions/getUserData"; import { useVersionContext } from "../../../../builder/version/versionContext"; +import { getWidgetInputData } from "../../../../../services/visulization/zone/getWidgetInputData"; interface ChartComponentProps { id: string; @@ -164,30 +165,14 @@ const DoughnutGraphComponent = ({ const fetchSavedInputes = async () => { if (id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/data?widgetID=${id}&zoneUuid=${selectedZone.zoneUuid}&projectId=${projectId}&versionId=${selectedVersion?.versionId || ""}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - - setmeasurements(response.data.Datastructure.measurements) - setDuration(response.data.Datastructure.duration) - setName(response.data.widgetName) - } else { - - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - + let response = await getWidgetInputData(id, selectedZone.zoneUuid, projectId, selectedVersion?.versionId || "") + + if (response) { + setmeasurements(response.Datastructure.measurements) + setDuration(response.Datastructure.duration) + setName(response.widgetName) } + } } diff --git a/app/src/modules/visualization/widgets/2d/charts/LineGraphComponent.tsx b/app/src/modules/visualization/widgets/2d/charts/LineGraphComponent.tsx index ca57217..ecacd26 100644 --- a/app/src/modules/visualization/widgets/2d/charts/LineGraphComponent.tsx +++ b/app/src/modules/visualization/widgets/2d/charts/LineGraphComponent.tsx @@ -10,6 +10,7 @@ import { useParams } from "react-router-dom"; import { useSelectedZoneStore } from "../../../../../store/visualization/useZoneStore"; import { getUserData } from "../../../../../functions/getUserData"; import { useVersionContext } from "../../../../builder/version/versionContext"; +import { getWidgetInputData } from "../../../../../services/visulization/zone/getWidgetInputData"; interface ChartComponentProps { id: string; @@ -181,29 +182,12 @@ const LineGraphComponent = ({ const fetchSavedInputes = async () => { if (id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/data?widgetID=${id}&zoneUuid=${selectedZone.zoneUuid}&projectId=${projectId}&versionId=${selectedVersion?.versionId || ""}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - - setmeasurements(response.data.Datastructure.measurements); - setDuration(response.data.Datastructure.duration); - setName(response.data.widgetName); - } else { - echo.error("Failed to fetch saved inputs"); - - } - } catch (error) { - + let response = await getWidgetInputData(id, selectedZone.zoneUuid, projectId, selectedVersion?.versionId || "") + + if (response) { + setmeasurements(response.Datastructure.measurements) + setDuration(response.Datastructure.duration) + setName(response.widgetName) } } }; diff --git a/app/src/modules/visualization/widgets/2d/charts/PieGraphComponent.tsx b/app/src/modules/visualization/widgets/2d/charts/PieGraphComponent.tsx index 10dbe56..6879f34 100644 --- a/app/src/modules/visualization/widgets/2d/charts/PieGraphComponent.tsx +++ b/app/src/modules/visualization/widgets/2d/charts/PieGraphComponent.tsx @@ -10,6 +10,7 @@ import { useSelectedZoneStore } from "../../../../../store/visualization/useZone import { useParams } from "react-router-dom"; import { getUserData } from "../../../../../functions/getUserData"; import { useVersionContext } from "../../../../builder/version/versionContext"; +import { getWidgetInputData } from "../../../../../services/visulization/zone/getWidgetInputData"; interface ChartComponentProps { id: string; @@ -181,30 +182,13 @@ const PieChartComponent = ({ const fetchSavedInputes = async () => { if (id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/data?widgetID=${id}&zoneUuid=${selectedZone.zoneUuid}&projectId=${projectId}&versionId=${selectedVersion?.versionId || ""}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - - setmeasurements(response.data.Datastructure.measurements); - setDuration(response.data.Datastructure.duration); - setName(response.data.widgetName); - } else { - echo.error("Failed to fetch saved inputs"); - - } - } catch (error) { - - } + let response = await getWidgetInputData(id, selectedZone.zoneUuid, projectId, selectedVersion?.versionId || "") + + if (response) { + setmeasurements(response.Datastructure.measurements) + setDuration(response.Datastructure.duration) + setName(response.widgetName) + } } }; diff --git a/app/src/modules/visualization/widgets/2d/charts/PolarAreaGraphComponent.tsx b/app/src/modules/visualization/widgets/2d/charts/PolarAreaGraphComponent.tsx index 0c40782..b99e55b 100644 --- a/app/src/modules/visualization/widgets/2d/charts/PolarAreaGraphComponent.tsx +++ b/app/src/modules/visualization/widgets/2d/charts/PolarAreaGraphComponent.tsx @@ -10,6 +10,7 @@ import { useSelectedZoneStore } from "../../../../../store/visualization/useZone import { useParams } from "react-router-dom"; import { getUserData } from "../../../../../functions/getUserData"; import { useVersionContext } from "../../../../builder/version/versionContext"; +import { getWidgetInputData } from "../../../../../services/visulization/zone/getWidgetInputData"; interface ChartComponentProps { id: string; @@ -181,30 +182,13 @@ const PolarAreaGraphComponent = ({ const fetchSavedInputes = async () => { if (id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/data?widgetID=${id}&zoneUuid=${selectedZone.zoneUuid}&projectId=${projectId}&versionId=${selectedVersion?.versionId || ""}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - - setmeasurements(response.data.Datastructure.measurements); - setDuration(response.data.Datastructure.duration); - setName(response.data.widgetName); - } else { - echo.error("Failed to fetch saved inputs"); - - } - } catch (error) { - - } + let response = await getWidgetInputData(id, selectedZone.zoneUuid, projectId, selectedVersion?.versionId || "") + + if (response) { + setmeasurements(response.Datastructure.measurements) + setDuration(response.Datastructure.duration) + setName(response.widgetName) + } } }; diff --git a/app/src/modules/visualization/widgets/2d/charts/ProgressCard1.tsx b/app/src/modules/visualization/widgets/2d/charts/ProgressCard1.tsx index 1a4159b..0506424 100644 --- a/app/src/modules/visualization/widgets/2d/charts/ProgressCard1.tsx +++ b/app/src/modules/visualization/widgets/2d/charts/ProgressCard1.tsx @@ -10,6 +10,7 @@ import { useSelectedZoneStore } from "../../../../../store/visualization/useZone import { useParams } from "react-router-dom"; import { getUserData } from "../../../../../functions/getUserData"; import { useVersionContext } from "../../../../builder/version/versionContext"; +import { getWidgetInputData } from "../../../../../services/visulization/zone/getWidgetInputData"; const ProgressCard1 = ({ id, title }: { id: string; title: string }) => { const { @@ -61,31 +62,13 @@ const ProgressCard1 = ({ id, title }: { id: string; title: string }) => { const fetchSavedInputes = async () => { if (id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/data?widgetID=${id}&zoneUuid=${selectedZone.zoneUuid}&projectId=${projectId}&versionId=${selectedVersion?.versionId || ""}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, + let response = await getWidgetInputData(id, selectedZone.zoneUuid, projectId, selectedVersion?.versionId || "") + + if (response) { + setmeasurements(response.Datastructure.measurements) + setDuration(response.Datastructure.duration) + setName(response.widgetName) } - ); - if (response.status === 200) { - - setmeasurements(response.data.Datastructure.measurements); - setDuration(response.data.Datastructure.duration); - setName(response.data.widgetName); - } else { - echo.error("Failed to fetch saved inputs"); - - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - - } } }; diff --git a/app/src/modules/visualization/widgets/2d/charts/ProgressCard2.tsx b/app/src/modules/visualization/widgets/2d/charts/ProgressCard2.tsx index c006438..b538f4d 100644 --- a/app/src/modules/visualization/widgets/2d/charts/ProgressCard2.tsx +++ b/app/src/modules/visualization/widgets/2d/charts/ProgressCard2.tsx @@ -10,6 +10,7 @@ import { useSelectedZoneStore } from "../../../../../store/visualization/useZone import { useParams } from "react-router-dom"; import { getUserData } from "../../../../../functions/getUserData"; import { useVersionContext } from "../../../../builder/version/versionContext"; +import { getWidgetInputData } from "../../../../../services/visulization/zone/getWidgetInputData"; const ProgressCard2 = ({ id, title }: { id: string; title: string }) => { const { @@ -65,30 +66,12 @@ const ProgressCard2 = ({ id, title }: { id: string; title: string }) => { const fetchSavedInputes = async () => { if (id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/V1/widget/data?widgetID=${id}&zoneUuid=${selectedZone.zoneUuid}&projectId=${projectId}&versionId=${selectedVersion?.versionId || ""}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - - - setmeasurements(response.data.Datastructure.measurements); - setDuration(response.data.Datastructure.duration); - setName(response.data.widgetName); - } else { - - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - + let response = await getWidgetInputData(id, selectedZone.zoneUuid, projectId, selectedVersion?.versionId || "") + + if (response) { + setmeasurements(response.Datastructure.measurements) + setDuration(response.Datastructure.duration) + setName(response.widgetName) } } }; diff --git a/app/src/modules/visualization/widgets/3d/Dropped3dWidget.tsx b/app/src/modules/visualization/widgets/3d/Dropped3dWidget.tsx index 0d9fade..a99bd56 100644 --- a/app/src/modules/visualization/widgets/3d/Dropped3dWidget.tsx +++ b/app/src/modules/visualization/widgets/3d/Dropped3dWidget.tsx @@ -66,7 +66,6 @@ export default function Dropped3dWidgets() { const [horizontalZ, setHorizontalZ] = useState(); const { selectedVersionStore } = useVersionContext(); const { selectedVersion } = selectedVersionStore(); - const activeZoneWidgets = zoneWidgetData[selectedZone.zoneUuid] || []; const { projectId } = useParams(); const { userId, organization, email } = getUserData(); @@ -107,13 +106,16 @@ export default function Dropped3dWidgets() { const hasEntered = { current: false }; const handleDragEnter = (event: DragEvent) => { + console.log("dragEnter"); event.preventDefault(); event.stopPropagation(); if (hasEntered.current || !widgetSelect.startsWith("ui")) return; + console.log('hasEntered.current : ', hasEntered.current ); hasEntered.current = true; const group1 = scene.getObjectByName("itemsGroup"); + console.log('group1: ', group1); if (!group1) return; const rect = canvasElement.getBoundingClientRect(); @@ -137,6 +139,7 @@ export default function Dropped3dWidgets() { intersect.object.type !== "GridHelper" ); + console.log('intersects: ', intersects); if (intersects.length > 0) { const { x, y, z } = intersects[0].point; const newWidget: WidgetData = { diff --git a/app/src/modules/visualization/widgets/3d/cards/ProductionCapacity.tsx b/app/src/modules/visualization/widgets/3d/cards/ProductionCapacity.tsx index c4d55e0..f951456 100644 --- a/app/src/modules/visualization/widgets/3d/cards/ProductionCapacity.tsx +++ b/app/src/modules/visualization/widgets/3d/cards/ProductionCapacity.tsx @@ -17,6 +17,7 @@ import io from "socket.io-client"; import { useWidgetStore } from "../../../../../store/useWidgetStore"; import useChartStore from "../../../../../store/visualization/useChartStore"; import { getUserData } from "../../../../../functions/getUserData"; +import { get3dWidgetInput } from "../../../../../services/visulization/zone/get3dWidgetInput"; // Register ChartJS components ChartJS.register( @@ -170,20 +171,27 @@ const ProductionCapacity: React.FC = ({ const fetchSavedInputes = async () => { if (id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/widget3D/${id}/${organization}` - ); - - if (response.status === 200) { - setmeasurements(response.data.Data.measurements); - setDuration(response.data.Data.duration); - setName(response.data.widgetName); - } else { - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); + let response = await get3dWidgetInput(id, organization) + console.log('response: ', response); + if (response) { + setmeasurements(response.data.Data.measurements); + setDuration(response.data.Data.duration); + setName(response.data.widgetName); } + // try { + // const response = await axios.get( + // `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/widget3D/${id}/${organization}` + // ); + + // if (response.status === 200) { + // setmeasurements(response.data.Data.measurements); + // setDuration(response.data.Data.duration); + // setName(response.data.widgetName); + // } else { + // } + // } catch (error) { + // echo.error("Failed to fetch saved inputs"); + // } } }; diff --git a/app/src/modules/visualization/widgets/3d/cards/ReturnOfInvestment.tsx b/app/src/modules/visualization/widgets/3d/cards/ReturnOfInvestment.tsx index e593902..80cd269 100644 --- a/app/src/modules/visualization/widgets/3d/cards/ReturnOfInvestment.tsx +++ b/app/src/modules/visualization/widgets/3d/cards/ReturnOfInvestment.tsx @@ -18,6 +18,7 @@ import { useWidgetStore } from "../../../../../store/useWidgetStore"; import useChartStore from "../../../../../store/visualization/useChartStore"; import { WavyIcon } from "../../../../../components/icons/3dChartIcons"; import { getUserData } from "../../../../../functions/getUserData"; +import { get3dWidgetInput } from "../../../../../services/visulization/zone/get3dWidgetInput"; // Register Chart.js components ChartJS.register( @@ -199,21 +200,28 @@ const ReturnOfInvestment: React.FC = ({ const fetchSavedInputes = async () => { if (id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/widget3D/${id}/${organization}` - ); - if (response.status === 200) { - setmeasurements(response.data.Data.measurements); - setDuration(response.data.Data.duration); - setName(response.data.widgetName); - } else { - // console.log("Unexpected response:", response); - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - console.error("There was an error!", error); + let response = await get3dWidgetInput(id, organization) + console.log('response: ', response); + if (response) { + setmeasurements(response.data.Data.measurements); + setDuration(response.data.Data.duration); + setName(response.data.widgetName); } + // try { + // const response = await axios.get( + // `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/widget3D/${id}/${organization}` + // ); + // if (response.status === 200) { + // setmeasurements(response.data.Data.measurements); + // setDuration(response.data.Data.duration); + // setName(response.data.widgetName); + // } else { + // // console.log("Unexpected response:", response); + // } + // } catch (error) { + // echo.error("Failed to fetch saved inputs"); + // console.error("There was an error!", error); + // } } }; diff --git a/app/src/modules/visualization/widgets/3d/cards/StateWorking.tsx b/app/src/modules/visualization/widgets/3d/cards/StateWorking.tsx index ed9da1a..f664661 100644 --- a/app/src/modules/visualization/widgets/3d/cards/StateWorking.tsx +++ b/app/src/modules/visualization/widgets/3d/cards/StateWorking.tsx @@ -6,6 +6,7 @@ import io from "socket.io-client"; import { useWidgetStore } from "../../../../../store/useWidgetStore"; import useChartStore from "../../../../../store/visualization/useChartStore"; import { getUserData } from "../../../../../functions/getUserData"; +import { get3dWidgetInput } from "../../../../../services/visulization/zone/get3dWidgetInput"; // import image from "../../../../assets/image/temp/image.png"; interface StateWorkingProps { @@ -77,21 +78,28 @@ const StateWorking: React.FC = ({ const fetchSavedInputes = async () => { if (id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/widget3D/${id}/${organization}` - ); - if (response.status === 200) { - setmeasurements(response.data.Data.measurements); - setDuration(response.data.Data.duration); - setName(response.data.widgetName); - } else { - // console.log("Unexpected response:", response); - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - console.error("There was an error!", error); + let response = await get3dWidgetInput(id, organization) + console.log('response: ', response); + if (response) { + setmeasurements(response.data.Data.measurements); + setDuration(response.data.Data.duration); + setName(response.data.widgetName); } + // try { + // const response = await axios.get( + // `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/widget3D/${id}/${organization}` + // ); + // if (response.status === 200) { + // setmeasurements(response.data.Data.measurements); + // setDuration(response.data.Data.duration); + // setName(response.data.widgetName); + // } else { + // // console.log("Unexpected response:", response); + // } + // } catch (error) { + // echo.error("Failed to fetch saved inputs"); + // console.error("There was an error!", error); + // } } }; diff --git a/app/src/modules/visualization/widgets/3d/cards/Throughput.tsx b/app/src/modules/visualization/widgets/3d/cards/Throughput.tsx index 5439a5b..ea87c7f 100644 --- a/app/src/modules/visualization/widgets/3d/cards/Throughput.tsx +++ b/app/src/modules/visualization/widgets/3d/cards/Throughput.tsx @@ -20,6 +20,7 @@ import { useWidgetStore } from "../../../../../store/useWidgetStore"; import useChartStore from "../../../../../store/visualization/useChartStore"; import { ThroughputIcon } from "../../../../../components/icons/3dChartIcons"; import { getUserData } from "../../../../../functions/getUserData"; +import { get3dWidgetInput } from "../../../../../services/visulization/zone/get3dWidgetInput"; // Register Chart.js components ChartJS.register( @@ -179,21 +180,28 @@ const Throughput: React.FC = ({ const fetchSavedInputes = async () => { if (id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/widget3D/${id}/${organization}` - ); - if (response.status === 200) { - setmeasurements(response.data.Data.measurements); - setDuration(response.data.Data.duration); - setName(response.data.widgetName); - } else { - // console.log("Unexpected response:", response); - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - console.error("There was an error!", error); + let response = await get3dWidgetInput(id, organization) + console.log('response: ', response); + if (response) { + setmeasurements(response.data.Data.measurements); + setDuration(response.data.Data.duration); + setName(response.data.widgetName); } + // try { + // const response = await axios.get( + // `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/widget3D/${id}/${organization}` + // ); + // if (response.status === 200) { + // setmeasurements(response.data.Data.measurements); + // setDuration(response.data.Data.duration); + // setName(response.data.widgetName); + // } else { + // // console.log("Unexpected response:", response); + // } + // } catch (error) { + // echo.error("Failed to fetch saved inputs"); + // console.error("There was an error!", error); + // } } }; diff --git a/app/src/modules/visualization/widgets/floating/DroppedFloatingWidgets.tsx b/app/src/modules/visualization/widgets/floating/DroppedFloatingWidgets.tsx index 3aba161..ee2d2fd 100644 --- a/app/src/modules/visualization/widgets/floating/DroppedFloatingWidgets.tsx +++ b/app/src/modules/visualization/widgets/floating/DroppedFloatingWidgets.tsx @@ -50,6 +50,7 @@ const DroppedObjects: React.FC = () => { const { selectedVersion } = selectedVersionStore(); const { projectId } = useParams(); + const [openKebabId, setOpenKebabId] = useState(null); const updateObjectPosition = useDroppedObjectsStore( (state) => state.updateObjectPosition @@ -116,7 +117,7 @@ const DroppedObjects: React.FC = () => { function handleDuplicate(zoneName: string, index: number) { setOpenKebabId(null); - duplicateObject(zoneName, index, projectId, selectedVersion?.versionId ||''); // Call the duplicateObject method from the store + duplicateObject(zoneName, index, projectId, selectedVersion?.versionId || ''); // Call the duplicateObject method from the store setSelectedChartId(null); } @@ -129,7 +130,7 @@ const DroppedObjects: React.FC = () => { organization, zoneUuid: zone.zoneUuid, versionId: selectedVersion?.versionId || '', - userId, + userId, projectId }; @@ -168,6 +169,7 @@ const DroppedObjects: React.FC = () => { setActiveEdges({ vertical, horizontal }); // Store the initial position strategy and active edges + setDraggingIndex({ zone: zoneName, index, @@ -190,6 +192,8 @@ const DroppedObjects: React.FC = () => { offsetX = rect.width - relativeX - (obj.position.right as number); } + + setOffset([offsetY, offsetX]); // Add native event listeners for smoother tracking @@ -254,11 +258,14 @@ const DroppedObjects: React.FC = () => { }; const handlePointerUpNative = async (e: PointerEvent) => { + // Clean up native event listeners element.removeEventListener("pointermove", handlePointerMoveNative); element.removeEventListener("pointerup", handlePointerUpNative); element.releasePointerCapture(e.pointerId); + + if (!draggingIndex || !offset) return; const rect = container.getBoundingClientRect(); @@ -305,15 +312,18 @@ const DroppedObjects: React.FC = () => { { ...zone.objects[draggingIndex.index], position: boundedPosition, - } + }, + projectId, + selectedVersion?.versionId || "" ); + if (response.message === "Widget updated successfully") { updateObjectPosition(zoneName, draggingIndex.index, boundedPosition); } } catch (error) { echo.error("Failed to add widget"); - console.log(error); + } finally { setDraggingIndex(null); setOffset(null); @@ -449,7 +459,7 @@ const DroppedObjects: React.FC = () => { updateObjectPosition(zoneName, draggingIndex.index, boundedPosition); } catch (error) { echo.error("Failed to add widget"); - console.log(error); + } finally { // Clean up regardless of success or failure setDraggingIndex(null); diff --git a/app/src/modules/visualization/widgets/floating/cards/FleetEfficiencyComponent.tsx b/app/src/modules/visualization/widgets/floating/cards/FleetEfficiencyComponent.tsx index 80d1b4a..ae48014 100644 --- a/app/src/modules/visualization/widgets/floating/cards/FleetEfficiencyComponent.tsx +++ b/app/src/modules/visualization/widgets/floating/cards/FleetEfficiencyComponent.tsx @@ -7,6 +7,8 @@ import io from "socket.io-client"; import { usePlayButtonStore } from "../../../../../store/usePlayButtonStore"; import { getUserData } from "../../../../../functions/getUserData"; import { useParams } from "react-router-dom"; +import { getFloatingWidgetInput } from "../../../../../services/visulization/zone/getFloatingWidgetInput"; +import { useVersionContext } from "../../../../builder/version/versionContext"; const FleetEfficiencyComponent = ({ object }: any) => { const [progress, setProgress] = useState(0); @@ -18,6 +20,8 @@ const FleetEfficiencyComponent = ({ object }: any) => { const { selectedChartId } = useWidgetStore(); const { isPlaying } = usePlayButtonStore(); const { projectId } = useParams() + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion } = selectedVersionStore(); const iotApiUrl = process.env.REACT_APP_IOT_SOCKET_SERVER_URL; @@ -44,10 +48,10 @@ const FleetEfficiencyComponent = ({ object }: any) => { socket.on("lastOutput", (response) => { const responseData = response.input1; - // console.log(responseData); + // if (typeof responseData === "number") { - // console.log("It's a number!"); + // setProgress(responseData); } }); @@ -61,28 +65,11 @@ const FleetEfficiencyComponent = ({ object }: any) => { const fetchSavedInputes = async () => { if (object?.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/A_floatWidget/${object?.id}/${organization}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - setmeasurements(response.data.Data.measurements); - setDuration(response.data.Data.duration); - setName(response.data.header); - } else { - // console.log("Unexpected response:", response); - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - console.error("There was an error!", error); + let response = await getFloatingWidgetInput(object?.id, organization,projectId,selectedVersion?.versionId||"") + if (response) { + setmeasurements(response.Data.Datastructure.measurements); + setDuration(response.Data.Datastructure.duration); + setName(response.Data.header); } } }; diff --git a/app/src/modules/visualization/widgets/floating/cards/TotalCardComponent.tsx b/app/src/modules/visualization/widgets/floating/cards/TotalCardComponent.tsx index c0516d7..377ce3f 100644 --- a/app/src/modules/visualization/widgets/floating/cards/TotalCardComponent.tsx +++ b/app/src/modules/visualization/widgets/floating/cards/TotalCardComponent.tsx @@ -1,17 +1,14 @@ import React, { useState, useEffect } from "react"; -import { Line } from "react-chartjs-2"; + import useChartStore from "../../../../../store/visualization/useChartStore"; import { useWidgetStore } from "../../../../../store/useWidgetStore"; import axios from "axios"; import io from "socket.io-client"; -import { - CartIcon, - DocumentIcon, - GlobeIcon, - WalletIcon, -} from "../../../../../components/icons/3dChartIcons"; +import {CartIcon,DocumentIcon,GlobeIcon,WalletIcon,} from "../../../../../components/icons/3dChartIcons"; import { getUserData } from "../../../../../functions/getUserData"; import { useParams } from "react-router-dom"; +import { getFloatingWidgetInput } from "../../../../../services/visulization/zone/getFloatingWidgetInput"; +import { useVersionContext } from "../../../../builder/version/versionContext"; const TotalCardComponent = ({ object }: any) => { const [progress, setProgress] = useState(0); @@ -22,6 +19,8 @@ const TotalCardComponent = ({ object }: any) => { const { header, flotingDuration, flotingMeasurements } = useChartStore(); const { selectedChartId } = useWidgetStore(); const { projectId } = useParams() + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion } = selectedVersionStore(); const iotApiUrl = process.env.REACT_APP_IOT_SOCKET_SERVER_URL; @@ -60,25 +59,12 @@ const TotalCardComponent = ({ object }: any) => { const fetchSavedInputes = async () => { if (object?.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/A_floatWidget/${object?.id}/${organization}`, { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - setmeasurements(response.data.Data.measurements); - setDuration(response.data.Data.duration); - setName(response.data.header); - } else { - echo.error("Failed to fetch saved inputs"); - } - } catch (error) { } + let response = await getFloatingWidgetInput(object?.id, organization,projectId,selectedVersion?.versionId||"") + if (response) { + setmeasurements(response.Data.Datastructure.measurements); + setDuration(response.Data.Datastructure.duration); + setName(response.Data.header); + } } }; diff --git a/app/src/modules/visualization/widgets/floating/cards/WarehouseThroughputComponent.tsx b/app/src/modules/visualization/widgets/floating/cards/WarehouseThroughputComponent.tsx index 46a64d7..395a253 100644 --- a/app/src/modules/visualization/widgets/floating/cards/WarehouseThroughputComponent.tsx +++ b/app/src/modules/visualization/widgets/floating/cards/WarehouseThroughputComponent.tsx @@ -6,6 +6,8 @@ import axios from "axios"; import io from "socket.io-client"; import { getUserData } from "../../../../../functions/getUserData"; import { useParams } from "react-router-dom"; +import { getFloatingWidgetInput } from "../../../../../services/visulization/zone/getFloatingWidgetInput"; +import { useVersionContext } from "../../../../builder/version/versionContext"; const WarehouseThroughputComponent = ({ object }: any) => { const [measurements, setmeasurements] = useState({}); @@ -22,22 +24,12 @@ const WarehouseThroughputComponent = ({ object }: any) => { const { header, flotingDuration, flotingMeasurements } = useChartStore(); const { selectedChartId } = useWidgetStore(); const { projectId } = useParams() + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion } = selectedVersionStore(); const iotApiUrl = process.env.REACT_APP_IOT_SOCKET_SERVER_URL; const lineGraphData = { - labels: [ - "Jan", - "Feb", - "Mar", - "Apr", - "May", - "Jun", - "Jul", - "Aug", - "Sep", - "Oct", - "Nov", - "Dec", + labels: ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec", ], // Months of the year datasets: [ { @@ -159,29 +151,14 @@ const WarehouseThroughputComponent = ({ object }: any) => { const fetchSavedInputes = async () => { if (object?.id !== "") { - try { - const response = await axios.get( - `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}/api/v2/A_floatWidget/${object?.id}/${organization}`, - { - headers: { - Authorization: "Bearer ", - "Content-Type": "application/json", - token: localStorage.getItem("token") || "", - refresh_token: localStorage.getItem("refreshToken") || "", - }, - } - ); - if (response.status === 200) { - setmeasurements(response.data.Data.measurements); - setDuration(response.data.Data.duration); - setName(response.data.header); - } else { - console.log("Unexpected response:", response); - } - } catch (error) { - echo.error("Failed to fetch saved inputs"); - console.error("There was an error!", error); + let response = await getFloatingWidgetInput(object?.id, organization, projectId, selectedVersion?.versionId || "") + + if (response) { + setmeasurements(response.Data.measurements); + setDuration(response.Data.duration); + setName(response?.header); } + } }; diff --git a/app/src/pages/Project.tsx b/app/src/pages/Project.tsx index 34a9a24..ded4562 100644 --- a/app/src/pages/Project.tsx +++ b/app/src/pages/Project.tsx @@ -128,6 +128,7 @@ const Project: React.FC = () => { )} {(commentPositionState !== null || selectedComment !== null) && } +
); }; diff --git a/app/src/pages/UserAuth.tsx b/app/src/pages/UserAuth.tsx index 13ca513..bb3ff37 100644 --- a/app/src/pages/UserAuth.tsx +++ b/app/src/pages/UserAuth.tsx @@ -43,7 +43,7 @@ const UserAuth: React.FC = () => { const organization = email.split("@")[1].split(".")[0]; try { const res = await signInApi(email, password, organization, fingerprint); - // console.log('res: ', res); + console.log('res: ', res); if (res.message.message === "login successfull") { setError(""); setOrganization(organization); diff --git a/app/src/pages/sessionValidity.tsx b/app/src/pages/sessionValidity.tsx new file mode 100644 index 0000000..4eecef6 --- /dev/null +++ b/app/src/pages/sessionValidity.tsx @@ -0,0 +1,15 @@ +import React, { useEffect } from 'react' + +function sessionValidity() { + + useEffect(() => { + + }, []) + + return ( + <> + + ) +} + +export default sessionValidity diff --git a/app/src/services/dashboard/createProject.ts b/app/src/services/dashboard/createProject.ts index 5de4b68..190e92d 100644 --- a/app/src/services/dashboard/createProject.ts +++ b/app/src/services/dashboard/createProject.ts @@ -13,6 +13,11 @@ export const createProject = async (projectUuid: string, userId: string, thumbna }, body: JSON.stringify({ projectUuid, userId, thumbnail, organization, }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to add project"); } diff --git a/app/src/services/dashboard/deleteProject.ts b/app/src/services/dashboard/deleteProject.ts index 27dc425..3c95330 100644 --- a/app/src/services/dashboard/deleteProject.ts +++ b/app/src/services/dashboard/deleteProject.ts @@ -21,6 +21,11 @@ export const deleteProject = async ( body: JSON.stringify({ userId, organization }), } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } console.log("response: ", response); if (!response.ok) { throw new Error("Failed to clearPanel in the zone"); diff --git a/app/src/services/dashboard/deleteTrash.ts b/app/src/services/dashboard/deleteTrash.ts index 6898914..90d70ec 100644 --- a/app/src/services/dashboard/deleteTrash.ts +++ b/app/src/services/dashboard/deleteTrash.ts @@ -15,6 +15,11 @@ export const deleteTrash = async (organization: string, projectId: string) => { }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } console.log("restore: ", response); if (!response.ok) { diff --git a/app/src/services/dashboard/duplicateProject.ts b/app/src/services/dashboard/duplicateProject.ts index b65e6ec..823e1ee 100644 --- a/app/src/services/dashboard/duplicateProject.ts +++ b/app/src/services/dashboard/duplicateProject.ts @@ -19,14 +19,18 @@ export const duplicateProject = async ( body: JSON.stringify({ projectUuid, thumbnail, projectName }), } ); - - console.log("response: ", response); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + // console.log("response: ", response); if (!response.ok) { throw new Error("Failed to add project"); } const result = await response.json(); - console.log("result: ", result); + // console.log("result: ", result); return result; } catch (error) { if (error instanceof Error) { diff --git a/app/src/services/dashboard/getAllProjects.ts b/app/src/services/dashboard/getAllProjects.ts index 45adab6..ffe08a2 100644 --- a/app/src/services/dashboard/getAllProjects.ts +++ b/app/src/services/dashboard/getAllProjects.ts @@ -14,6 +14,11 @@ export const getAllProjects = async (userId: string, organization: string) => { }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to fetch assets"); diff --git a/app/src/services/dashboard/getTrash.ts b/app/src/services/dashboard/getTrash.ts index 052c54a..4105c13 100644 --- a/app/src/services/dashboard/getTrash.ts +++ b/app/src/services/dashboard/getTrash.ts @@ -16,7 +16,11 @@ export const getTrash = async (organization: string) => { }, } ); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to fetch trash data"); } diff --git a/app/src/services/dashboard/projectTutorial.ts b/app/src/services/dashboard/projectTutorial.ts index cb262bf..808c066 100644 --- a/app/src/services/dashboard/projectTutorial.ts +++ b/app/src/services/dashboard/projectTutorial.ts @@ -5,10 +5,17 @@ export const projectTutorial = async () => { const response = await fetch(`${url_Backend_dwinzo}/api/V1/tutorials`, { method: "GET", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, }); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } // console.log("response: ", response); if (!response.ok) { diff --git a/app/src/services/dashboard/recentlyViewed.ts b/app/src/services/dashboard/recentlyViewed.ts index b7649c7..df4f908 100644 --- a/app/src/services/dashboard/recentlyViewed.ts +++ b/app/src/services/dashboard/recentlyViewed.ts @@ -14,7 +14,11 @@ export const recentlyViewed = async (organization: string, userId: string) => { }, } ); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to fetch project"); } diff --git a/app/src/services/dashboard/restoreTrash.ts b/app/src/services/dashboard/restoreTrash.ts index fdf544d..cb1d601 100644 --- a/app/src/services/dashboard/restoreTrash.ts +++ b/app/src/services/dashboard/restoreTrash.ts @@ -15,6 +15,11 @@ export const restoreTrash = async (organization: string, projectId: string) => { }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to fetch trash data"); diff --git a/app/src/services/dashboard/searchProjects.ts b/app/src/services/dashboard/searchProjects.ts index b741e42..b2c89eb 100644 --- a/app/src/services/dashboard/searchProjects.ts +++ b/app/src/services/dashboard/searchProjects.ts @@ -18,6 +18,11 @@ export const searchProject = async ( }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } console.log("response: ", response); if (!response.ok) { diff --git a/app/src/services/dashboard/trashSearchProject.ts b/app/src/services/dashboard/trashSearchProject.ts index 90ae211..820c8a2 100644 --- a/app/src/services/dashboard/trashSearchProject.ts +++ b/app/src/services/dashboard/trashSearchProject.ts @@ -18,7 +18,11 @@ export const trashSearchProject = async ( }, } ); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to add project"); } diff --git a/app/src/services/dashboard/updateProject.ts b/app/src/services/dashboard/updateProject.ts index afe45b0..a285118 100644 --- a/app/src/services/dashboard/updateProject.ts +++ b/app/src/services/dashboard/updateProject.ts @@ -31,6 +31,11 @@ export const updateProject = async ( } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to clearPanel in the zone"); } diff --git a/app/src/services/dashboard/viewProject.ts b/app/src/services/dashboard/viewProject.ts index 04095b7..8708768 100644 --- a/app/src/services/dashboard/viewProject.ts +++ b/app/src/services/dashboard/viewProject.ts @@ -18,6 +18,11 @@ export const viewProject = async ( }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to fetch"); diff --git a/app/src/services/factoryBuilder/aisle/createAisleApi.ts b/app/src/services/factoryBuilder/aisle/createAisleApi.ts index 1e06c10..3a4951e 100644 --- a/app/src/services/factoryBuilder/aisle/createAisleApi.ts +++ b/app/src/services/factoryBuilder/aisle/createAisleApi.ts @@ -18,6 +18,11 @@ export const createAisleApi = async ( }, body: JSON.stringify({ aisleUuid, points, type, projectId, versionId }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to add project"); diff --git a/app/src/services/factoryBuilder/aisle/deleteAisleApi.ts b/app/src/services/factoryBuilder/aisle/deleteAisleApi.ts index 04907bf..69b91fb 100644 --- a/app/src/services/factoryBuilder/aisle/deleteAisleApi.ts +++ b/app/src/services/factoryBuilder/aisle/deleteAisleApi.ts @@ -12,6 +12,11 @@ export const deleteAisleApi = async (aisleUuid: string, projectId: string, versi }, body: JSON.stringify({ aisleUuid, projectId }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to clearPanel in the zone"); } diff --git a/app/src/services/factoryBuilder/aisle/getAisleApi.ts b/app/src/services/factoryBuilder/aisle/getAisleApi.ts index 1ec9258..f804915 100644 --- a/app/src/services/factoryBuilder/aisle/getAisleApi.ts +++ b/app/src/services/factoryBuilder/aisle/getAisleApi.ts @@ -14,6 +14,11 @@ export const getAisleApi = async (projectId: string, versionId: string) => { }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } // console.log("response: ", response); if (!response.ok) { diff --git a/app/src/services/factoryBuilder/assest/floorAsset/deleteFloorItemApi.ts b/app/src/services/factoryBuilder/assest/floorAsset/deleteFloorItemApi.ts index 9cc61ec..a584af5 100644 --- a/app/src/services/factoryBuilder/assest/floorAsset/deleteFloorItemApi.ts +++ b/app/src/services/factoryBuilder/assest/floorAsset/deleteFloorItemApi.ts @@ -11,11 +11,19 @@ export const deleteFloorItem = async ( { method: "DELETE", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, body: JSON.stringify({ organization, modelUuid, modelName }), } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to delete Floor Item"); diff --git a/app/src/services/factoryBuilder/assest/floorAsset/getFloorItemsApi.ts b/app/src/services/factoryBuilder/assest/floorAsset/getFloorItemsApi.ts index e17de98..8d14ee8 100644 --- a/app/src/services/factoryBuilder/assest/floorAsset/getFloorItemsApi.ts +++ b/app/src/services/factoryBuilder/assest/floorAsset/getFloorItemsApi.ts @@ -14,6 +14,11 @@ export const getFloorAssets = async (organization: string, projectId?: string, v }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } // console.log('response: ', response); if (!response.ok) { diff --git a/app/src/services/factoryBuilder/assest/floorAsset/setAssetsApi.ts b/app/src/services/factoryBuilder/assest/floorAsset/setAssetsApi.ts index 00a1415..2522438 100644 --- a/app/src/services/factoryBuilder/assest/floorAsset/setAssetsApi.ts +++ b/app/src/services/factoryBuilder/assest/floorAsset/setAssetsApi.ts @@ -11,6 +11,11 @@ export const setAssetsApi = async (data: any) => { }, body: JSON.stringify(data), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to set or update Floor Item"); diff --git a/app/src/services/factoryBuilder/assest/wallAsset/deleteWallItemApi.ts b/app/src/services/factoryBuilder/assest/wallAsset/deleteWallItemApi.ts index 45e5253..5cf970a 100644 --- a/app/src/services/factoryBuilder/assest/wallAsset/deleteWallItemApi.ts +++ b/app/src/services/factoryBuilder/assest/wallAsset/deleteWallItemApi.ts @@ -11,11 +11,19 @@ export const deleteWallItem = async ( { method: "DELETE", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, body: JSON.stringify({ organization, modelUuid, modelName }), } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to delete Wall Item"); diff --git a/app/src/services/factoryBuilder/assest/wallAsset/getWallItemsApi.ts b/app/src/services/factoryBuilder/assest/wallAsset/getWallItemsApi.ts index fb290f7..e9a55bf 100644 --- a/app/src/services/factoryBuilder/assest/wallAsset/getWallItemsApi.ts +++ b/app/src/services/factoryBuilder/assest/wallAsset/getWallItemsApi.ts @@ -14,7 +14,11 @@ export const getWallItems = async (organization: string, projectId?: string, ver }, } ); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } // console.log('response: ', response); if (!response.ok) { throw new Error("Failed to get Wall Items"); diff --git a/app/src/services/factoryBuilder/assest/wallAsset/setWallItemApi.ts b/app/src/services/factoryBuilder/assest/wallAsset/setWallItemApi.ts index 8098ffe..1f7c2b7 100644 --- a/app/src/services/factoryBuilder/assest/wallAsset/setWallItemApi.ts +++ b/app/src/services/factoryBuilder/assest/wallAsset/setWallItemApi.ts @@ -15,7 +15,10 @@ export const setWallItem = async ( const response = await fetch(`${url_Backend_dwinzo}/api/v1/setWallItems`, { method: "POST", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, body: JSON.stringify({ organization, @@ -30,6 +33,11 @@ export const setWallItem = async ( }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to set or update Wall Item"); } diff --git a/app/src/services/factoryBuilder/camera/getCameraApi.ts b/app/src/services/factoryBuilder/camera/getCameraApi.ts index d63ffeb..3d765c2 100644 --- a/app/src/services/factoryBuilder/camera/getCameraApi.ts +++ b/app/src/services/factoryBuilder/camera/getCameraApi.ts @@ -14,6 +14,11 @@ export const getCamera = async (organization: string, userId: string, projectId? }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to get Camera position and target"); diff --git a/app/src/services/factoryBuilder/camera/setCameraApi.ts b/app/src/services/factoryBuilder/camera/setCameraApi.ts index 40316d7..383a807 100644 --- a/app/src/services/factoryBuilder/camera/setCameraApi.ts +++ b/app/src/services/factoryBuilder/camera/setCameraApi.ts @@ -11,7 +11,10 @@ export const setCamera = async ( const response = await fetch(`${url_Backend_dwinzo}/api/v1/setCamera`, { method: "POST", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, body: JSON.stringify({ organization, @@ -21,6 +24,11 @@ export const setCamera = async ( rotation, }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to set Camera Position and Target"); diff --git a/app/src/services/factoryBuilder/collab/getActiveUsers.ts b/app/src/services/factoryBuilder/collab/getActiveUsers.ts index ba7be84..e505def 100644 --- a/app/src/services/factoryBuilder/collab/getActiveUsers.ts +++ b/app/src/services/factoryBuilder/collab/getActiveUsers.ts @@ -7,10 +7,19 @@ export default async function getActiveUsersData(organization: string) { const response = await fetch(apiUrl, { method: "GET", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error(`Error: ${response.status} - ${response.statusText}`); } diff --git a/app/src/services/factoryBuilder/collab/getUsersApi.ts b/app/src/services/factoryBuilder/collab/getUsersApi.ts index 964ec0d..36d7203 100644 --- a/app/src/services/factoryBuilder/collab/getUsersApi.ts +++ b/app/src/services/factoryBuilder/collab/getUsersApi.ts @@ -7,10 +7,18 @@ export default async function fetchShareUsers(organization: string) { const response = await fetch(apiUrl, { method: "GET", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error(`Error: ${response.status} - ${response.statusText}`); } diff --git a/app/src/services/factoryBuilder/collab/giveCollabAccess.ts b/app/src/services/factoryBuilder/collab/giveCollabAccess.ts index 1c2b747..b46d425 100644 --- a/app/src/services/factoryBuilder/collab/giveCollabAccess.ts +++ b/app/src/services/factoryBuilder/collab/giveCollabAccess.ts @@ -9,10 +9,18 @@ export default async function giveCollabAccess( const response = await fetch(`${url_Backend_dwinzo}/api/v1/shareUser`, { method: "POST", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, body: JSON.stringify({ email, isShare, organization }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to set Camera Position and Target"); diff --git a/app/src/services/factoryBuilder/comments/addCommentsApi.ts b/app/src/services/factoryBuilder/comments/addCommentsApi.ts index 7189c5e..7c48890 100644 --- a/app/src/services/factoryBuilder/comments/addCommentsApi.ts +++ b/app/src/services/factoryBuilder/comments/addCommentsApi.ts @@ -27,6 +27,12 @@ export const addCommentsApi = async ( body: JSON.stringify({ projectId, comment, threadId, commentId }), } ); + + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } console.log('response: ', response); if (!response.ok) { throw new Error("Failed to add project"); diff --git a/app/src/services/factoryBuilder/comments/createThreadApi.ts b/app/src/services/factoryBuilder/comments/createThreadApi.ts index 8759991..872738b 100644 --- a/app/src/services/factoryBuilder/comments/createThreadApi.ts +++ b/app/src/services/factoryBuilder/comments/createThreadApi.ts @@ -18,6 +18,11 @@ export const createThreadApi = async ( }, body: JSON.stringify({ projectId, state, position, rotation, threadTitle }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to add project"); } diff --git a/app/src/services/factoryBuilder/comments/deleteCommentApi.ts b/app/src/services/factoryBuilder/comments/deleteCommentApi.ts index 786ee24..ffc81e7 100644 --- a/app/src/services/factoryBuilder/comments/deleteCommentApi.ts +++ b/app/src/services/factoryBuilder/comments/deleteCommentApi.ts @@ -26,7 +26,11 @@ export const deleteCommentApi = async ( body: JSON.stringify(body), } ); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to clearPanel in the zone"); } diff --git a/app/src/services/factoryBuilder/comments/deleteThreadApi.ts b/app/src/services/factoryBuilder/comments/deleteThreadApi.ts index 497c7b1..8f94969 100644 --- a/app/src/services/factoryBuilder/comments/deleteThreadApi.ts +++ b/app/src/services/factoryBuilder/comments/deleteThreadApi.ts @@ -18,7 +18,11 @@ export const deleteThreadApi = async (projectId: string, threadId: string) => { }, body: JSON.stringify(body), }); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to clearPanel in the zone"); } diff --git a/app/src/services/factoryBuilder/comments/editThreadTitleApi.ts b/app/src/services/factoryBuilder/comments/editThreadTitleApi.ts index 391c52d..557cdd2 100644 --- a/app/src/services/factoryBuilder/comments/editThreadTitleApi.ts +++ b/app/src/services/factoryBuilder/comments/editThreadTitleApi.ts @@ -26,7 +26,11 @@ export const editThreadTitleApi = async ( body: JSON.stringify(body), } ); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to clearPanel in the zone"); } diff --git a/app/src/services/factoryBuilder/comments/getAllThreads.ts b/app/src/services/factoryBuilder/comments/getAllThreads.ts index 7314682..96da305 100644 --- a/app/src/services/factoryBuilder/comments/getAllThreads.ts +++ b/app/src/services/factoryBuilder/comments/getAllThreads.ts @@ -14,6 +14,11 @@ export const getAllThreads = async (projectId: string) => { }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to get assets"); diff --git a/app/src/services/factoryBuilder/environment/findEnvironment.ts b/app/src/services/factoryBuilder/environment/findEnvironment.ts index 3a6ead1..9462360 100644 --- a/app/src/services/factoryBuilder/environment/findEnvironment.ts +++ b/app/src/services/factoryBuilder/environment/findEnvironment.ts @@ -15,7 +15,11 @@ export const findEnvironment = async (organization: string, userId: string, proj }, } ); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to get wall and roof visibility"); diff --git a/app/src/services/factoryBuilder/environment/setEnvironment.ts b/app/src/services/factoryBuilder/environment/setEnvironment.ts index 5b495fd..c87bcdf 100644 --- a/app/src/services/factoryBuilder/environment/setEnvironment.ts +++ b/app/src/services/factoryBuilder/environment/setEnvironment.ts @@ -34,7 +34,11 @@ export const setEnvironment = async ( }), } ); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } // console.log('responseenv: ', response); if (!response.ok) { throw new Error("Failed to set wall and roof visibility"); diff --git a/app/src/services/factoryBuilder/lines/deleteLayerApi.ts b/app/src/services/factoryBuilder/lines/deleteLayerApi.ts index 29ae2cd..b434cfb 100644 --- a/app/src/services/factoryBuilder/lines/deleteLayerApi.ts +++ b/app/src/services/factoryBuilder/lines/deleteLayerApi.ts @@ -5,11 +5,18 @@ export const deleteLayer = async (organization: string, layer: number) => { const response = await fetch(`${url_Backend_dwinzo}/api/v1/deleteLayer`, { method: "POST", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, body: JSON.stringify({ organization, layer }), }); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to delete line"); } diff --git a/app/src/services/factoryBuilder/lines/deleteLineApi.ts b/app/src/services/factoryBuilder/lines/deleteLineApi.ts index 7aba3cd..416fcbc 100644 --- a/app/src/services/factoryBuilder/lines/deleteLineApi.ts +++ b/app/src/services/factoryBuilder/lines/deleteLineApi.ts @@ -5,11 +5,18 @@ export const deleteLineApi = async (organization: string, line: Object) => { const response = await fetch(`${url_Backend_dwinzo}/api/v1/deleteLine`, { method: "DELETE", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, body: JSON.stringify({ organization, line }), }); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to delete line"); } diff --git a/app/src/services/factoryBuilder/lines/deletePointApi.ts b/app/src/services/factoryBuilder/lines/deletePointApi.ts index 9d63aa9..1b9ec1a 100644 --- a/app/src/services/factoryBuilder/lines/deletePointApi.ts +++ b/app/src/services/factoryBuilder/lines/deletePointApi.ts @@ -5,10 +5,18 @@ export const deletePointApi = async (organization: string, uuid: string) => { const response = await fetch(`${url_Backend_dwinzo}/api/v1/deletePoint`, { method: "DELETE", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, body: JSON.stringify({ organization, uuid }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to delete point"); diff --git a/app/src/services/factoryBuilder/lines/getLinesApi.ts b/app/src/services/factoryBuilder/lines/getLinesApi.ts index 4d8f962..5397663 100644 --- a/app/src/services/factoryBuilder/lines/getLinesApi.ts +++ b/app/src/services/factoryBuilder/lines/getLinesApi.ts @@ -14,7 +14,12 @@ export const getLines = async (organization: string, projectId?: string, version }, } ); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to get Lines"); } diff --git a/app/src/services/factoryBuilder/lines/setLineApi.ts b/app/src/services/factoryBuilder/lines/setLineApi.ts index e0ab043..1481394 100644 --- a/app/src/services/factoryBuilder/lines/setLineApi.ts +++ b/app/src/services/factoryBuilder/lines/setLineApi.ts @@ -10,11 +10,20 @@ export const setLine = async ( const response = await fetch(`${url_Backend_dwinzo}/api/v1/setLine`, { method: "POST", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, body: JSON.stringify({ organization, layer, line, type }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to set line"); } diff --git a/app/src/services/factoryBuilder/lines/updatePointApi.ts b/app/src/services/factoryBuilder/lines/updatePointApi.ts index 3392d89..ae42615 100644 --- a/app/src/services/factoryBuilder/lines/updatePointApi.ts +++ b/app/src/services/factoryBuilder/lines/updatePointApi.ts @@ -9,11 +9,18 @@ export const updatePoint = async ( const response = await fetch(`${url_Backend_dwinzo}/api/v1/updatePoint`, { method: "POST", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, body: JSON.stringify({ organization, position, uuid }), }); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to update point"); } diff --git a/app/src/services/factoryBuilder/versionControl/addVersionApi.ts b/app/src/services/factoryBuilder/versionControl/addVersionApi.ts index 0f9e81c..dd3855e 100644 --- a/app/src/services/factoryBuilder/versionControl/addVersionApi.ts +++ b/app/src/services/factoryBuilder/versionControl/addVersionApi.ts @@ -21,6 +21,11 @@ export const createVersionApi = async (projectId: string, createdBy: string, hie }) } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to create Version History"); diff --git a/app/src/services/factoryBuilder/versionControl/getVersionDataApi.ts b/app/src/services/factoryBuilder/versionControl/getVersionDataApi.ts index e0a56ad..354e3cd 100644 --- a/app/src/services/factoryBuilder/versionControl/getVersionDataApi.ts +++ b/app/src/services/factoryBuilder/versionControl/getVersionDataApi.ts @@ -14,6 +14,11 @@ export const getVersionDataApi = async (projectId: string, versionId: string) => } } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to get Version Data"); diff --git a/app/src/services/factoryBuilder/versionControl/getVersionHistoryApi.ts b/app/src/services/factoryBuilder/versionControl/getVersionHistoryApi.ts index 08fa982..2faae9a 100644 --- a/app/src/services/factoryBuilder/versionControl/getVersionHistoryApi.ts +++ b/app/src/services/factoryBuilder/versionControl/getVersionHistoryApi.ts @@ -14,6 +14,11 @@ export const getVersionHistoryApi = async (projectId: string, page?: number, lim }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to get Version History"); diff --git a/app/src/services/factoryBuilder/zones/deleteZoneApi.ts b/app/src/services/factoryBuilder/zones/deleteZoneApi.ts index 4d921a1..cf9836c 100644 --- a/app/src/services/factoryBuilder/zones/deleteZoneApi.ts +++ b/app/src/services/factoryBuilder/zones/deleteZoneApi.ts @@ -9,11 +9,18 @@ export const deleteZonesApi = async ( const response = await fetch(`${url_Backend_dwinzo}/api/v1/setLine`, { method: "POST", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, body: JSON.stringify({ userId, organization, zoneUuid }), }); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to delete zone"); } diff --git a/app/src/services/factoryBuilder/zones/getZonesApi.ts b/app/src/services/factoryBuilder/zones/getZonesApi.ts index acbf612..c79f100 100644 --- a/app/src/services/factoryBuilder/zones/getZonesApi.ts +++ b/app/src/services/factoryBuilder/zones/getZonesApi.ts @@ -15,6 +15,11 @@ export const getZonesApi = async (organization: string, projectId?: string, vers }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to get Zones"); diff --git a/app/src/services/factoryBuilder/zones/setZonesApi.ts b/app/src/services/factoryBuilder/zones/setZonesApi.ts index 5ba7ea3..6431c61 100644 --- a/app/src/services/factoryBuilder/zones/setZonesApi.ts +++ b/app/src/services/factoryBuilder/zones/setZonesApi.ts @@ -9,11 +9,18 @@ export const setZonesApi = async ( const response = await fetch(`${url_Backend_dwinzo}/api/v1/setLine`, { method: "POST", headers: { + Authorization: "Bearer ", "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", }, body: JSON.stringify({ userId, organization, zoneData }), }); - + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to set zone"); } diff --git a/app/src/services/simulation/products/UpsertProductOrEventApi.ts b/app/src/services/simulation/products/UpsertProductOrEventApi.ts index 058db57..1520272 100644 --- a/app/src/services/simulation/products/UpsertProductOrEventApi.ts +++ b/app/src/services/simulation/products/UpsertProductOrEventApi.ts @@ -15,6 +15,11 @@ export const upsertProductOrEventApi = async (body: any) => { body: JSON.stringify(body), } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to add product or event"); diff --git a/app/src/services/simulation/products/deleteEventDataApi.ts b/app/src/services/simulation/products/deleteEventDataApi.ts index 7bf8554..b0ee831 100644 --- a/app/src/services/simulation/products/deleteEventDataApi.ts +++ b/app/src/services/simulation/products/deleteEventDataApi.ts @@ -15,6 +15,13 @@ export const deleteEventDataApi = async (body: any) => { body: JSON.stringify(body), } ); + + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to delete event data"); diff --git a/app/src/services/simulation/products/deleteProductApi.ts b/app/src/services/simulation/products/deleteProductApi.ts index 4e55282..548adc4 100644 --- a/app/src/services/simulation/products/deleteProductApi.ts +++ b/app/src/services/simulation/products/deleteProductApi.ts @@ -15,6 +15,11 @@ export const deleteProductApi = async (body: any) => { body: JSON.stringify(body), } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to delete product data"); diff --git a/app/src/services/simulation/products/getProductApi.ts b/app/src/services/simulation/products/getProductApi.ts index 53edccb..e51fda9 100644 --- a/app/src/services/simulation/products/getProductApi.ts +++ b/app/src/services/simulation/products/getProductApi.ts @@ -17,6 +17,11 @@ export const getProductApi = async ( }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to fetch product data"); diff --git a/app/src/services/simulation/products/getallProductsApi.ts b/app/src/services/simulation/products/getallProductsApi.ts index 05ae340..859dc75 100644 --- a/app/src/services/simulation/products/getallProductsApi.ts +++ b/app/src/services/simulation/products/getallProductsApi.ts @@ -14,6 +14,11 @@ export const getAllProductsApi = async (projectId: string, versionId: string) => }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to fetch all products data"); diff --git a/app/src/services/simulation/products/renameProductApi.ts b/app/src/services/simulation/products/renameProductApi.ts index 038ba63..2c92fb6 100644 --- a/app/src/services/simulation/products/renameProductApi.ts +++ b/app/src/services/simulation/products/renameProductApi.ts @@ -17,6 +17,11 @@ export const renameProductApi = async (body: { }, body: JSON.stringify(body), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to rename product"); diff --git a/app/src/services/visulization/zone/add3dWidget.ts b/app/src/services/visulization/zone/add3dWidget.ts index 0dad631..1a76fa1 100644 --- a/app/src/services/visulization/zone/add3dWidget.ts +++ b/app/src/services/visulization/zone/add3dWidget.ts @@ -3,7 +3,10 @@ let url_Backend_dwinzo = `http://${process.env.REACT_APP_SERVER_REST_API_BASE_UR export const adding3dWidgets = async ( zoneUuid: string, organization: string, - widget: {} + widget: {}, + projectId?: string, + versionId?: string + ) => { try { const response = await fetch(`${url_Backend_dwinzo}/api/V1/widget3d/save`, { @@ -14,9 +17,16 @@ export const adding3dWidgets = async ( token: localStorage.getItem("token") || "", refresh_token: localStorage.getItem("refreshToken") || "", }, - body: JSON.stringify({ organization, zoneUuid, widget }), + body: JSON.stringify({ organization, zoneUuid, widget, projectId, versionId }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + + if (!response.ok) { throw new Error("Failed to add 3dwidget in the zone"); } diff --git a/app/src/services/visulization/zone/addFloatingWidgets.ts b/app/src/services/visulization/zone/addFloatingWidgets.ts index fb93ec6..0b46ae1 100644 --- a/app/src/services/visulization/zone/addFloatingWidgets.ts +++ b/app/src/services/visulization/zone/addFloatingWidgets.ts @@ -1,13 +1,5 @@ let url_Backend_dwinzo = `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}`; -// let url_Backend_dwinzo = `http://192.168.0.102:5000`; - -export const addingFloatingWidgets = async ( - zoneUuid: string, - organization: string, - widget: {}, - projectId?: string -) => { - +export const addingFloatingWidgets = async (zoneUuid: string,organization: string,widget: {},projectId?: string,versionId?: string) => { try { const response = await fetch( `${url_Backend_dwinzo}/api/V1/floatWidget/save`, @@ -19,10 +11,16 @@ export const addingFloatingWidgets = async ( token: localStorage.getItem("token") || "", refresh_token: localStorage.getItem("refreshToken") || "", }, - body: JSON.stringify({ organization, zoneUuid, widget ,projectId}), + body: JSON.stringify({ organization, zoneUuid, widget, projectId, versionId }), } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to add Floatingwidget in the zone"); } diff --git a/app/src/services/visulization/zone/addWidgets.ts b/app/src/services/visulization/zone/addWidgets.ts index f325311..e4fb7da 100644 --- a/app/src/services/visulization/zone/addWidgets.ts +++ b/app/src/services/visulization/zone/addWidgets.ts @@ -19,6 +19,12 @@ export const addingWidgets = async ( }, body: JSON.stringify({ organization, zoneUuid, widget, projectId, versionId }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to add widget in the zone"); diff --git a/app/src/services/visulization/zone/clearPanel.ts b/app/src/services/visulization/zone/clearPanel.ts index 5b60e4a..c07e922 100644 --- a/app/src/services/visulization/zone/clearPanel.ts +++ b/app/src/services/visulization/zone/clearPanel.ts @@ -17,6 +17,13 @@ export const clearPanel = async ( body: JSON.stringify({ organization, zoneUuid, panelName }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + + if (!response.ok) { throw new Error("Failed to clearPanel in the zone"); } diff --git a/app/src/services/visulization/zone/delete3dWidget.ts b/app/src/services/visulization/zone/delete3dWidget.ts index 6fb0e16..c22f4f8 100644 --- a/app/src/services/visulization/zone/delete3dWidget.ts +++ b/app/src/services/visulization/zone/delete3dWidget.ts @@ -21,6 +21,13 @@ export const delete3dWidgetApi = async ( } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + + if (!response.ok) { throw new Error("Failed to delete floating widget in the zone"); } diff --git a/app/src/services/visulization/zone/deleteFloatingWidget.ts b/app/src/services/visulization/zone/deleteFloatingWidget.ts index b3a624b..28e1a5a 100644 --- a/app/src/services/visulization/zone/deleteFloatingWidget.ts +++ b/app/src/services/visulization/zone/deleteFloatingWidget.ts @@ -19,6 +19,12 @@ export const deleteFloatingWidgetApi = async ( body: JSON.stringify({ organization, floatWidgetID }), } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to delete floating widget in the zone"); diff --git a/app/src/services/visulization/zone/deletePanel.ts b/app/src/services/visulization/zone/deletePanel.ts index cf55888..77c6a29 100644 --- a/app/src/services/visulization/zone/deletePanel.ts +++ b/app/src/services/visulization/zone/deletePanel.ts @@ -18,6 +18,13 @@ export const deletePanelApi = async ( body: JSON.stringify({ organization, zoneUuid, panelName }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + + if (!response.ok) { throw new Error("Failed to delete widget in the zone"); } diff --git a/app/src/services/visulization/zone/deleteTemplate.ts b/app/src/services/visulization/zone/deleteTemplate.ts index adaf2af..4a53d98 100644 --- a/app/src/services/visulization/zone/deleteTemplate.ts +++ b/app/src/services/visulization/zone/deleteTemplate.ts @@ -18,6 +18,11 @@ export const deleteTemplateApi = async ( }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to delete template "); diff --git a/app/src/services/visulization/zone/deleteWidgetApi.ts b/app/src/services/visulization/zone/deleteWidgetApi.ts index d7ea84f..177feac 100644 --- a/app/src/services/visulization/zone/deleteWidgetApi.ts +++ b/app/src/services/visulization/zone/deleteWidgetApi.ts @@ -17,6 +17,12 @@ export const deleteWidgetApi = async ( }, body: JSON.stringify({ organization, widgetID, zoneUuid }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to delete widget in the zone"); diff --git a/app/src/services/visulization/zone/duplicateWidget.ts b/app/src/services/visulization/zone/duplicateWidget.ts index cf6af04..225bbc0 100644 --- a/app/src/services/visulization/zone/duplicateWidget.ts +++ b/app/src/services/visulization/zone/duplicateWidget.ts @@ -16,6 +16,11 @@ export const duplicateWidgetApi = async ( }, body: JSON.stringify({ organization, zoneUuid, widget }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to duplicate widget in the zone"); diff --git a/app/src/services/visulization/zone/get3dWidgetData.ts b/app/src/services/visulization/zone/get3dWidgetData.ts index 9097e1e..fa3a81a 100644 --- a/app/src/services/visulization/zone/get3dWidgetData.ts +++ b/app/src/services/visulization/zone/get3dWidgetData.ts @@ -1,7 +1,5 @@ -import { projectTutorial } from "../../dashboard/projectTutorial"; let url_Backend_dwinzo = `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}`; -// let url_Backend_dwinzo = `http://192.168.0.102:5000`; export const get3dWidgetZoneData = async ( zoneUuid?: string, organization?: string, @@ -21,6 +19,13 @@ export const get3dWidgetZoneData = async ( }, } ); + + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to fetch Zone3dWidgetData"); } diff --git a/app/src/services/visulization/zone/get3dWidgetInput.ts b/app/src/services/visulization/zone/get3dWidgetInput.ts new file mode 100644 index 0000000..71f38ef --- /dev/null +++ b/app/src/services/visulization/zone/get3dWidgetInput.ts @@ -0,0 +1,34 @@ +let url_Backend_dwinzo = `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}`; + + +export const get3dWidgetInput = async (chartId: string, organization: string, projectId?: string, versionId?: string) => { + try { + const response = await fetch( + `${url_Backend_dwinzo}/api/v2/widget3D/${chartId}/${organization}`, + { + method: "GET", + headers: { + Authorization: "Bearer ", + "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", + }, + } + ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + + if (!response.ok) { + throw new Error("Failed to fetch zoneDatas"); + } + const result = await response.json(); + console.log('result: ', result); + return result; + } catch (error: any) { + echo.error("Failed to fetch 2d widget data"); + console.log(error.message); + } +}; diff --git a/app/src/services/visulization/zone/getFloatingData.ts b/app/src/services/visulization/zone/getFloatingData.ts index cecbb17..3f730b8 100644 --- a/app/src/services/visulization/zone/getFloatingData.ts +++ b/app/src/services/visulization/zone/getFloatingData.ts @@ -19,6 +19,12 @@ export const getFloatingZoneData = async ( }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to fetch ZoneFloatingData"); diff --git a/app/src/services/visulization/zone/getFloatingWidgetInput.ts b/app/src/services/visulization/zone/getFloatingWidgetInput.ts new file mode 100644 index 0000000..2da71f1 --- /dev/null +++ b/app/src/services/visulization/zone/getFloatingWidgetInput.ts @@ -0,0 +1,36 @@ +let url_Backend_dwinzo = `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}`; +// let url_Backend_dwinzo = `http://192.168.0.102:5000`; + +export const getFloatingWidgetInput = async (floatWidgetID: string, organization: string, projectId?: string, versionId?: string) => { + + try { + const response = await fetch( + `${url_Backend_dwinzo}/api/V1/floatWidget/${projectId}/${versionId}/${floatWidgetID}`, + { + method: "GET", + headers: { + Authorization: "Bearer ", + "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", + }, + } + ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + + + if (!response.ok) { + throw new Error("Failed to fetch zoneDatas"); + } + + const result = await response.json(); + return result; + } catch (error: any) { + echo.error("Failed to fetch 2d widget data"); + console.log(error.message); + } +}; diff --git a/app/src/services/visulization/zone/getSelect2dZoneData.ts b/app/src/services/visulization/zone/getSelect2dZoneData.ts index 33e3100..6a0e1d2 100644 --- a/app/src/services/visulization/zone/getSelect2dZoneData.ts +++ b/app/src/services/visulization/zone/getSelect2dZoneData.ts @@ -1,6 +1,4 @@ let url_Backend_dwinzo = `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}`; -// let url_Backend_dwinzo = `http://192.168.0.102:5000`; - export const getSelect2dZoneData = async (zoneUuid?: string, organization?: string, projectId?: string, versionId?: string) => { try { const response = await fetch( @@ -15,6 +13,12 @@ export const getSelect2dZoneData = async (zoneUuid?: string, organization?: stri }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to fetch zoneDatas"); diff --git a/app/src/services/visulization/zone/getTemplate.ts b/app/src/services/visulization/zone/getTemplate.ts index 1cf630a..0d1c561 100644 --- a/app/src/services/visulization/zone/getTemplate.ts +++ b/app/src/services/visulization/zone/getTemplate.ts @@ -15,6 +15,12 @@ export const getTemplateData = async (organization?: string, projectId?: string, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to fetch ZoneFloatingData"); } diff --git a/app/src/services/visulization/zone/getWidgetInputData.ts b/app/src/services/visulization/zone/getWidgetInputData.ts new file mode 100644 index 0000000..34c41b7 --- /dev/null +++ b/app/src/services/visulization/zone/getWidgetInputData.ts @@ -0,0 +1,33 @@ +let url_Backend_dwinzo = `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}`; +// let url_Backend_dwinzo = `http://192.168.0.102:5000`; + +export const getWidgetInputData = async (chartId?: string, zoneUuid?: string, projectId?: string, versionId?: string) => { + try { + const response = await fetch( + `${url_Backend_dwinzo}/api/V1/widget/data?widgetID=${chartId}&zoneUuid=${zoneUuid}&projectId=${projectId}&versionId=${versionId || ""}`, + { + method: "GET", + headers: { + Authorization: "Bearer ", + "Content-Type": "application/json", + token: localStorage.getItem("token") || "", + refresh_token: localStorage.getItem("refreshToken") || "", + }, + } + ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + + if (!response.ok) { + throw new Error("Failed to fetch zoneDatas"); + } + + return await response.json(); + } catch (error: any) { + echo.error("Failed to fetch 2d widget data"); + console.log(error.message); + } +}; diff --git a/app/src/services/visulization/zone/getZoneData.ts b/app/src/services/visulization/zone/getZoneData.ts index 7270bf3..50f1154 100644 --- a/app/src/services/visulization/zone/getZoneData.ts +++ b/app/src/services/visulization/zone/getZoneData.ts @@ -1,5 +1,4 @@ let url_Backend_dwinzo = `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}`; -// let url_Backend_dwinzo = `http://192.168.0.102:5000`; export const getZone2dData = async (organization?: string, projectId?: string, versionId?: string) => { try { const response = await fetch( @@ -7,20 +6,35 @@ export const getZone2dData = async (organization?: string, projectId?: string, v { method: "GET", headers: { - Authorization: "Bearer ", + Authorization: `Bearer ${localStorage.getItem("token") || ""}`, "Content-Type": "application/json", token: localStorage.getItem("token") || "", refresh_token: localStorage.getItem("refreshToken") || "", }, } ); - if (!response.ok) { - throw new Error("Failed to fetch zoneDatas"); + + // Check and store new access token from headers (if any) + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); } + // Handle unauthorized response early + if (response.status === 401) { + return { status: 401 }; + } + + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); + } + + // Parse and return the actual JSON response return await response.json(); } catch (error: any) { - echo.error("Failed to fetch 2d zone data"); - console.log(error.message); + console.error("Failed to fetch 2D zone data:", error.message); + return null; } }; + diff --git a/app/src/services/visulization/zone/getZones.ts b/app/src/services/visulization/zone/getZones.ts index ce33cd6..1e7bb14 100644 --- a/app/src/services/visulization/zone/getZones.ts +++ b/app/src/services/visulization/zone/getZones.ts @@ -1,10 +1,10 @@ let url_Backend_dwinzo = `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}`; // let url_Backend_dwinzo = `http://192.168.0.102:5000`; -export const getZoneData = async (zoneUuid: string, organization: string, projectId?: string) => { +export const getZoneData = async (zoneUuid: string, organization: string, projectId?: string, versionId?: string) => { try { const response = await fetch( - `${url_Backend_dwinzo}/api/V1/zones/${projectId}/${zoneUuid}`, + `${url_Backend_dwinzo}/api/V1/zone/${projectId}/${zoneUuid}/${versionId}`, { method: "GET", headers: { @@ -15,6 +15,12 @@ export const getZoneData = async (zoneUuid: string, organization: string, projec }, } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to fetch zoneData"); diff --git a/app/src/services/visulization/zone/loadTemplate.ts b/app/src/services/visulization/zone/loadTemplate.ts index 16c9476..b938285 100644 --- a/app/src/services/visulization/zone/loadTemplate.ts +++ b/app/src/services/visulization/zone/loadTemplate.ts @@ -19,6 +19,12 @@ export const loadTempleteApi = async ( body: JSON.stringify({ organization, zoneUuid, templateID }), } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to load Template in the zone"); diff --git a/app/src/services/visulization/zone/lockPanel.ts b/app/src/services/visulization/zone/lockPanel.ts index 046c484..4e5b28d 100644 --- a/app/src/services/visulization/zone/lockPanel.ts +++ b/app/src/services/visulization/zone/lockPanel.ts @@ -16,6 +16,12 @@ export const lockPanel = async ( body: JSON.stringify({ organization, zoneUuid, lockedPanel }), } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to Lock Panel in the zone"); diff --git a/app/src/services/visulization/zone/panel.ts b/app/src/services/visulization/zone/panel.ts index b083df4..550b13c 100644 --- a/app/src/services/visulization/zone/panel.ts +++ b/app/src/services/visulization/zone/panel.ts @@ -17,6 +17,11 @@ export const panelData = async ( }, body: JSON.stringify({ organization, zoneUuid, panelOrder }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } if (!response.ok) { throw new Error("Failed to add panelOrder for Zone"); diff --git a/app/src/services/visulization/zone/saveTempleteApi.ts b/app/src/services/visulization/zone/saveTempleteApi.ts index 79c7a33..1d446de 100644 --- a/app/src/services/visulization/zone/saveTempleteApi.ts +++ b/app/src/services/visulization/zone/saveTempleteApi.ts @@ -12,6 +12,12 @@ export const saveTemplateApi = async (organization: string, template: {}) => { }, body: JSON.stringify({ organization, template }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { throw new Error("Failed to save template zone"); diff --git a/app/src/services/visulization/zone/update3dWidget.ts b/app/src/services/visulization/zone/update3dWidget.ts index dfbf855..2301439 100644 --- a/app/src/services/visulization/zone/update3dWidget.ts +++ b/app/src/services/visulization/zone/update3dWidget.ts @@ -26,6 +26,12 @@ export const update3dWidget = async ( }), } ); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + if (!response.ok) { echo.error("Failed to update 3d widget"); diff --git a/app/src/services/visulization/zone/zoneCameraUpdation.ts b/app/src/services/visulization/zone/zoneCameraUpdation.ts index d74a38d..f50f248 100644 --- a/app/src/services/visulization/zone/zoneCameraUpdation.ts +++ b/app/src/services/visulization/zone/zoneCameraUpdation.ts @@ -1,7 +1,7 @@ let url_Backend_dwinzo = `http://${process.env.REACT_APP_SERVER_REST_API_BASE_URL}`; // let url_Backend_dwinzo = `http://192.168.0.102:5000`; -export const zoneCameraUpdate = async (zoneData: {}, organization: string, projectId?: string) => { +export const zoneCameraUpdate = async (zoneData: {}, organization: string, projectId?: string, versionId?: string) => { try { const response = await fetch(`${url_Backend_dwinzo}/api/V1/zones`, { method: "POST", @@ -11,9 +11,16 @@ export const zoneCameraUpdate = async (zoneData: {}, organization: string, proje token: localStorage.getItem("token") || "", refresh_token: localStorage.getItem("refreshToken") || "", }, - body: JSON.stringify({ zoneData, projectId }), + body: JSON.stringify({ zoneData, projectId, versionId }), }); + const newAccessToken = response.headers.get("x-access-token"); + if (newAccessToken) { + //console.log("New token received:", newAccessToken); + localStorage.setItem("token", newAccessToken); + } + + if (!response.ok) { throw new Error("Failed to update camera position in the zone"); }