Files
Dwinzo-Backend-V0.0/src/socket-server/services/visualization/3dWidget-Service.ts

76 lines
2.0 KiB
TypeScript
Raw Normal View History

2025-04-01 18:07:09 +05:30
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;
2025-04-01 18:07:09 +05:30
try {
const existingZone = await zoneSchema(organization).findOne({
zoneId: zoneId,
isArchive: false,
});
if (!existingZone)
return {
success: false,
message: "Zone not found for the zoneId",
organization: organization,
};
const existing3Dwidget = await widget3dModel(organization).findOne({
widgetID: widget.id,
isArchive: false,
});
if (existing3Dwidget) {
const update3dwidget = await widget3dModel(organization).findOneAndUpdate(
{
2025-04-01 18:07:09 +05:30
widgetID: widget.id,
zoneId: zoneId,
2025-04-01 18:07:09 +05:30
isArchive: false,
},
{ position: widget.position },
{ upsert: true, new: true }
);
if (update3dwidget)
return {
success: true,
message: "widget update successfully",
organization: organization,
};
else
return {
success: false,
message: "Widget not updated",
organization: organization,
};
}
const newWidget3d = await widget3dModel(organization).create({
type: widget.type,
widgetID: widget.id,
position: widget.position,
zoneId,
});
if (newWidget3d) {
const widgemodel3D_Datas = {
widget: {
id: newWidget3d.widgetID,
type: newWidget3d.type,
position: newWidget3d.position,
},
Data: newWidget3d.Data,
zoneId: zoneId,
};
return {
success: true,
message: "Widget created successfully",
data: widgemodel3D_Datas,
organization: organization,
};
}
} catch (error: any) {
return {
success: false,
message: error?.message || "Error occurred while 3Dwidget",
error,
organization: organization,
};
}
};