Collaboration completed for builder,dashboard, visualization for API and socket

This commit is contained in:
2025-06-04 17:25:46 +05:30
parent 591d86c274
commit 5216ee190a
40 changed files with 1045 additions and 674 deletions

View File

@@ -1,155 +1,200 @@
import { Socket, Server } from "socket.io";
import { EVENTS } from "../../socket/events.ts";
import { emitToSenderAndAdmins } from "../../utils/emitEventResponse.ts";
import { deleteAssetModel, replaceEventDatas, setAssetModel } from "../../../shared/services/builder/assetService.ts";
import { ErrorResponse, FinalResponse, validateFields } from "../../utils/socketfunctionHelpers.ts";
import {
deleteAssetModel,
replaceEventDatas,
setAssetModel,
} from "../../../shared/services/builder/assetService.ts";
import {
ErrorResponse,
FinalResponse,
validateFields,
} from "../../utils/socketfunctionHelpers.ts";
export const setAssetHandleEvent = async (
event: string,
socket: Socket,
io: Server,
data: any,
connectedUsersByOrg: { [org: string]: { socketId: string; userId: string; role: string }[] },
event: string,
socket: Socket,
io: Server,
data: any,
connectedUsersByOrg: {
[org: string]: { socketId: string; userId: string; role: string }[];
}
) => {
if (event !== EVENTS.setAssetModel_v1 || !data?.organization) return;
const requiredFields = [
"modelUuid",
"modelName",
"position",
"rotation",
"eventData",
"modelfileID",
"isLocked",
"isVisible",
"projectId",
"userId",
"organization",
];
const missingFields = validateFields(data, requiredFields);
if (event !== EVENTS.setAssetModel_v1 || !data?.organization) return;
console.log('event: ', event);
const requiredFields = [
"modelUuid",
"modelName",
"position",
"rotation",
"modelfileID",
"isLocked",
"isVisible",
"projectId",
"userId",
"organization",
];
const missingFields = validateFields(data, requiredFields);
if (missingFields.length > 0) {
emitToSenderAndAdmins(io, socket, data.organization, EVENTS.asset_v1UpdateResponse,
ErrorResponse(missingFields, socket, data.organization), connectedUsersByOrg);
return;
}
const result = await setAssetModel(data);
const status = typeof result?.status === "string" ? result.status : "unknown";
if (missingFields.length > 0) {
emitToSenderAndAdmins(
io,
socket,
data.organization,
EVENTS.asset_v1UpdateResponse,
ErrorResponse(missingFields, socket, data.organization),
connectedUsersByOrg
);
return;
}
const result = await setAssetModel(data);
const status = typeof result?.status === "string" ? result.status : "unknown";
const messages: Record<string, { message: string }> = {
Success: { message: "Model created successfully" },
"User not found": { message: "User not found" },
"Project not found": { message: "Project not found" },
"Updated successfully": { message: "Updated successfully" },
const messages: Record<string, { message: string }> = {
Success: { message: "Model created successfully" },
"User not found": { message: "User not found" },
"Project not found": { message: "Project not found" },
"Updated successfully": { message: "Updated successfully" },
};
const msg = messages[status] || { message: "Internal server error" };
const Asset_Datas = status === "Success" && result?.data ? {} : undefined;
};
const response = FinalResponse(
status,
socket,
data.organization,
messages,
Asset_Datas
);
const msg = messages[status] || { message: "Internal server error" };
const Asset_Datas =
status === "Success" && result?.data
? {
}
: undefined;
const response = FinalResponse(status, socket, data.organization, messages, Asset_Datas);
emitToSenderAndAdmins(io, socket, data.organization, EVENTS.asset_v1UpdateResponse, response, connectedUsersByOrg)
}
emitToSenderAndAdmins(
io,
socket,
data.organization,
EVENTS.asset_v1UpdateResponse,
response,
connectedUsersByOrg
);
};
export const deleteAssetHandleEvent = async (
event: string,
socket: Socket,
io: Server,
data: any,
connectedUsersByOrg: { [org: string]: { socketId: string; userId: string; role: string }[] },
event: string,
socket: Socket,
io: Server,
data: any,
connectedUsersByOrg: {
[org: string]: { socketId: string; userId: string; role: string }[];
}
) => {
if (event !== EVENTS.delete_v1AssetModel || !data?.organization) return;
const requiredFields = [
"modelUuid",
"modelName",
"projectId",
"userId",
"organization",
];
const missingFields = validateFields(data, requiredFields);
if (event !== EVENTS.delete_v1AssetModel || !data?.organization) return;
console.log('event: ', event);
const requiredFields = [
"modelUuid",
"modelName",
"projectId",
"userId",
"organization",
];
const missingFields = validateFields(data, requiredFields);
if (missingFields.length > 0) {
emitToSenderAndAdmins(io, socket, data.organization, EVENTS.asset_v1DeleteResponse,
ErrorResponse(missingFields, socket, data.organization), connectedUsersByOrg);
return;
}
const result = await deleteAssetModel(data);
const status = typeof result?.status === "string" ? result.status : "unknown";
if (missingFields.length > 0) {
emitToSenderAndAdmins(
io,
socket,
data.organization,
EVENTS.asset_v1DeleteResponse,
ErrorResponse(missingFields, socket, data.organization),
connectedUsersByOrg
);
return;
}
const result = await deleteAssetModel(data);
const status = typeof result?.status === "string" ? result.status : "unknown";
const messages: Record<string, { message: string }> = {
Success: { message: "Model deleted successfully" },
"User not found": { message: "User not found" },
"Project not found": { message: "Project not found" },
"model not found": { message: "model not found" },
"Failed to archive asset": { message: "Failed to archive asset" },
const messages: Record<string, { message: string }> = {
Success: { message: "Model deleted successfully" },
"User not found": { message: "User not found" },
"Project not found": { message: "Project not found" },
"model not found": { message: "model not found" },
"Failed to archive asset": { message: "Failed to archive asset" },
};
const msg = messages[status] || { message: "Internal server error" };
const Asset_Datas = status === "Success" && result?.data ? {} : undefined;
const response = FinalResponse(
status,
socket,
data.organization,
messages,
Asset_Datas
);
};
const msg = messages[status] || { message: "Internal server error" };
const Asset_Datas =
status === "Success" && result?.data
? {
}
: undefined;
const response = FinalResponse(status, socket, data.organization, messages, Asset_Datas);
emitToSenderAndAdmins(io, socket, data.organization, EVENTS.asset_v1DeleteResponse, response, connectedUsersByOrg)
}
emitToSenderAndAdmins(
io,
socket,
data.organization,
EVENTS.asset_v1DeleteResponse,
response,
connectedUsersByOrg
);
};
export const replaceEventDatasHandleEvent = async (
event: string,
socket: Socket,
io: Server,
data: any,
connectedUsersByOrg: { [org: string]: { socketId: string; userId: string; role: string }[] },
event: string,
socket: Socket,
io: Server,
data: any,
connectedUsersByOrg: {
[org: string]: { socketId: string; userId: string; role: string }[];
}
) => {
if (event !== EVENTS.asset_v1EventData || !data?.organization) return;
const requiredFields = [
"modelUuid",
"eventData",
"projectId",
"userId",
"organization",
];
const missingFields = validateFields(data, requiredFields);
if (missingFields.length > 0) {
emitToSenderAndAdmins(io, socket, data.organization, EVENTS.asset_v1EventDataResponse,
ErrorResponse(missingFields, socket, data.organization), connectedUsersByOrg);
return;
}
const result = await replaceEventDatas(data);
const status = typeof result?.status === "string" ? result.status : "unknown";
if (event !== EVENTS.asset_v1EventData || !data?.organization) return;
const requiredFields = [
"modelUuid",
"eventData",
"projectId",
"userId",
"organization",
];
const missingFields = validateFields(data, requiredFields);
if (missingFields.length > 0) {
emitToSenderAndAdmins(
io,
socket,
data.organization,
EVENTS.asset_v1EventDataResponse,
ErrorResponse(missingFields, socket, data.organization),
connectedUsersByOrg
);
return;
}
const result = await replaceEventDatas(data);
const status = typeof result?.status === "string" ? result.status : "unknown";
const messages: Record<string, { message: string }> = {
Success: { message: "Data updated successfully" },
"User not found": { message: "User not found" },
"Project not found": { message: "Project not found" },
"Model not for this UUID": { message: "Model not for this UUID" },
"Failed to archive asset": { message: "Failed to archive asset" },
const messages: Record<string, { message: string }> = {
Success: { message: "Data updated successfully" },
"User not found": { message: "User not found" },
"Project not found": { message: "Project not found" },
"Model not for this UUID": { message: "Model not for this UUID" },
"Failed to archive asset": { message: "Failed to archive asset" },
};
const msg = messages[status] || { message: "Internal server error" };
const Asset_Datas = status === "Success" && result?.data ? {} : undefined;
};
const response = FinalResponse(
status,
socket,
data.organization,
messages,
Asset_Datas
);
const msg = messages[status] || { message: "Internal server error" };
const Asset_Datas =
status === "Success" && result?.data
? {
}
: undefined;
const response = FinalResponse(status, socket, data.organization, messages, Asset_Datas);
emitToSenderAndAdmins(io, socket, data.organization, EVENTS.asset_v1EventDataResponse, response, connectedUsersByOrg)
}
emitToSenderAndAdmins(
io,
socket,
data.organization,
EVENTS.asset_v1EventDataResponse,
response,
connectedUsersByOrg
);
};