widget3d update,delete creation

This commit is contained in:
2025-04-05 17:44:01 +05:30
parent e83cf3b486
commit 64b07dd057
5 changed files with 218 additions and 39 deletions

16
.env
View File

@@ -1,11 +1,11 @@
# MONGO_URI=mongodb://192.168.0.111/
# MONGO_USER=mydata
# MONGO_PASSWORD=mongodb@hexr2002
# MONGO_AUTH_DB=admin
MONGO_USER=admin
MONGO_PASSWORD=admin321
MONGO_URI=mongodb://192.168.0.111/
MONGO_USER=mydata
MONGO_PASSWORD=mongodb@hexr2002
MONGO_AUTH_DB=admin
MONGO_URI=mongodb://mongo/
# MONGO_USER=admin
# MONGO_PASSWORD=admin321
# MONGO_AUTH_DB=admin
# MONGO_URI=mongodb://mongo/
API_PORT=5000
SOCKET_PORT=8000

View File

@@ -2,6 +2,8 @@ import zoneSchema from "../../../shared/model/builder/lines/zone-Model.ts";
import widget3dModel from "../../../shared/model/vizualization/3dwidget.ts";
export const add3Dwidget = async (data: any) => {
const { organization, widget, zoneId } = data;
console.log('data: ', data);
try {
const existingZone = await zoneSchema(organization).findOne({
@@ -73,3 +75,128 @@ export const add3Dwidget = async (data: any) => {
};
}
};
export const update3D = async (data: any) => {
const { organization, id, position, rotation, zoneId } = data
console.log('data: ', data);
try {
const existingZone = await zoneSchema(organization).findOne({
zoneId: zoneId,
isArchive: false,
});
if (!existingZone)
return {
success: false,
message: "Zone not found",
organization: organization,
};
const existing3Dwidget = await widget3dModel(organization).findOne({
widgetID: id,
zoneId: zoneId,
isArchive: false,
});
if (existing3Dwidget) {
const update3dwidget = await widget3dModel(
organization
).findOneAndUpdate(
{
widgetID: id,
zoneId: zoneId,
isArchive: false,
},
{ position: position, rotation: rotation },
{ upsert: true, new: true }
);
if (update3dwidget){
const updateDatas = {
widget: {
id: update3dwidget.widgetID,
type: update3dwidget.type,
position: update3dwidget.position,
rotation: update3dwidget.rotation,
},
zoneId: zoneId,
};
return {
success: true,
message: "widget update successfully",
data:updateDatas,
organization: organization,
};
}
} else {
return {
success: false,
message: "widget not found",
organization: organization,
};
}
} catch (error: any) {
return {
success: false,
message: error?.message || "Error occurred while 3Dwidget",
error,
organization: organization,
};
}
};
export const delete3Dwidget = async (data: any) => {
const { organization, id, zoneId } = data
console.log('data: ', data);
try {
const existingZone = await zoneSchema(organization).findOne({
zoneId: zoneId,
isArchive: false,
});
if (!existingZone)
return {
success: false,
message: "Zone not found",
organization: organization,
};
const existing3Dwidget = await widget3dModel(organization).findOne({
widgetID: id,
isArchive: false,
zoneId: zoneId,
});
if (!existing3Dwidget) {
return {
success: false,
message: "3D widget not found for the ID",
organization: organization,
};
}
const updateWidget = await widget3dModel(organization).findOneAndUpdate(
{
widgetID: id,
zoneId: zoneId,
isArchive: false,
},
{ isArchive: true },
{ new: true }
);
if (updateWidget){
const delete_Datas = {
zoneId: zoneId,id:existing3Dwidget.widgetID
};
return {
success: true,
data:delete_Datas,
message: "3DWidget delete successfull",
organization: organization,
};
}
} catch (error: any) {
return {
success: false,
message: error?.message || "Error occurred while 3Dwidget",
error,
organization: organization,
};
}
}

View File

@@ -18,6 +18,7 @@ export const addfloat = async (data: any) => {
});
if (existingFloatWidget) {
console.log('existingFloatWidget: ', existingFloatWidget);
const updateFloatWidget = await floatWidgetModel(organization).findOneAndUpdate(
{
floatWidgetID: widget.id,
@@ -26,8 +27,8 @@ export const addfloat = async (data: any) => {
{
$set: {
Data: {
measurements: widget?.Data.measurements,
duration: widget?.Data.duration,
measurements: widget?.Data?.measurements,
duration: widget?.Data?.duration,
},
header: widget?.header,
position: widget?.position,
@@ -43,28 +44,31 @@ export const addfloat = async (data: any) => {
index: index,
zoneId: zoneId, zoneName: existingZone.zoneName
}
console.log(updateFloatWidget);
return { success: true, message: "Widget updated successfully", data: floatUpdateDatas, organization: organization }
}else{
const newFloadWidget = await floatWidgetModel(organization).create({
className: widget.className,
header: widget.header,
floatWidgetID: widget.id,
position: widget.position,
per: widget.per,
value: widget.value,
zoneId: zoneId,
});
if (newFloadWidget) {
const floatDatas = {
widget: {
position: newFloadWidget.position, header: newFloadWidget.header, value: newFloadWidget.value
, per: newFloadWidget.per, className: newFloadWidget.className, id: newFloadWidget.floatWidgetID
},
zoneId: zoneId, zoneName: existingZone.zoneName
}
return { success: true, message: "FloatWidget created successfully", data: floatDatas, organization: organization }
}
}
const newFloadWidget = await floatWidgetModel(organization).create({
className: widget.className,
header: widget.header,
floatWidgetID: widget.id,
position: widget.position,
per: widget.per,
value: widget.value,
zoneId: zoneId,
});
if (newFloadWidget) {
const floatDatas = {
widget: {
position: newFloadWidget.position, header: newFloadWidget.header, value: newFloadWidget.value
, per: newFloadWidget.per, className: newFloadWidget.className, id: newFloadWidget.floatWidgetID
},
zoneId: zoneId, zoneName: existingZone.zoneName
}
return { success: true, message: "FloatWidget created successfully", data: floatDatas, organization: organization }
}
} catch (error: any) {
return { success: false, message: error?.message || "Error occurred while float", error, organization: organization }
}
@@ -95,8 +99,8 @@ export const duplicatefloat = async (data: any) => {
{
$set: {
Data: {
measurements: widget?.Data.measurements,
duration: widget?.Data.duration,
measurements: widget?.Data?.measurements,
duration: widget?.Data?.duration,
},
header: widget?.header,
position: widget?.position,

View File

@@ -89,6 +89,8 @@ export const EVENTS = {
//3Dwidget
add3DWidget:"v2:viz-3D-widget:add",
widget3DUpdateResponse:"viz-widget3D:response:updates",
update3dPosition:"v2:viz-3D-widget:modifyPositionRotation",
update3dPositionResponse:"viz-widget3D:response:modifyPositionRotation",
delete3DWidget:"v2:viz-3D-widget:delete",
widget3DDeleteResponse:"viz-widget3D:response:delete",
}

View File

@@ -12,7 +12,7 @@ import { addWidget, Widgetdelete } from '../services/visualization/widget-Servic
import { addfloat, deletefloat, duplicatefloat } from '../services/visualization/floatWidget-Service.ts';
import { addTemplate, addTemplateZone, TemplateZoneDelete } from '../services/visualization/templateServices.ts';
import { deleteAssetModel, replaceEventDatas, setAssetModel } from '../services/assets/asset-Controller.ts';
import { add3Dwidget } from '../services/visualization/3dWidget-Service.ts';
import { add3Dwidget, delete3Dwidget, update3D } from '../services/visualization/3dWidget-Service.ts';
@@ -814,6 +814,52 @@ const Widget3DHandleEvent = async (event: string, socket: Socket, data: any, nam
}
break
}
case EVENTS.update3dPosition: {
result = await update3D(data);
if (result) {
const responseEvent = EVENTS.update3dPositionResponse
const organization = result?.organization
// const emitTarget = notifySender ? socket.in(organization) : socket.to(organization);
// console.log(`👀 Active sockets in room:`, namespace.adapter.rooms.get(organization));
if (organization) {
socket.to(organization).emit(responseEvent, {
success: result.success,
message: result.message,
data: result.data,
error: result.error || null,
socketId: socket.id,
organization,
});
} else {
console.warn(`Organization missing in response for event: ${event}`);
}
}
break
}
case EVENTS.delete3DWidget: {
result = await delete3Dwidget(data);
if (result) {
const responseEvent = EVENTS.widget3DDeleteResponse
const organization = result?.organization
// const emitTarget = notifySender ? socket.in(organization) : socket.to(organization);
// console.log(`👀 Active sockets in room:`, namespace.adapter.rooms.get(organization));
if (organization) {
socket.to(organization).emit(responseEvent, {
success: result.success,
message: result.message,
data: result.data,
error: result.error || null,
socketId: socket.id,
organization,
});
} else {
console.warn(`Organization missing in response for event: ${event}`);
}
}
break
}
// case EVENTS.deleteWidget: {
// const result = await Widgetdelete(data)
@@ -1034,9 +1080,9 @@ export const initSocketServer = (httpServer: any) => {
// console.log(`✅ Client connected to ${namespaceName}: ${socket.id}`);
// Extract organization from query parameters
const organization = socket.handshake.query.organization as string;
const email = socket.handshake.query.email as string;
// const {organization,email} = socket.handshake.auth
// const organization = socket.handshake.query.organization as string;
// const email = socket.handshake.query.email as string;
const {organization,email} = socket.handshake.auth
// console.log(`🔍 Received organization: ${organization}`);
if (organization) {
@@ -1049,9 +1095,9 @@ export const initSocketServer = (httpServer: any) => {
onlineUsers[organization] = new Set();
}
onlineUsers[organization].add(socket.id);
console.log('onlineUsers: ', onlineUsers);
// console.log('onlineUsers: ', onlineUsers);
console.log(`✅ User ${email} joined ${organization}. Active users:`, onlineUsers[organization]);
// console.log(`✅ User ${email} joined ${organization}. Active users:`, onlineUsers[organization]);
}
userStatus(EVENTS.connection, socket, socket.handshake.auth, socket);