Collaboration completed for builder,dashboard, visualization for API and socket
This commit is contained in:
@@ -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
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user