dsql-admin/dsql-app/docker/web-socket/app/functions/socket-message.ts
Benjamin Toby e95f4d1087 Updates
2025-02-16 17:12:40 +01:00

56 lines
1.4 KiB
TypeScript

import type { ServerWebSocket } from "bun";
import type { WebSocketData } from "@WS/.";
import type { WebSocketDataType } from "@/types";
import { EJSON } from "@/client-exports";
import checkQueue from "./events/client-requests/check-queue";
import webSocketSendDummyQueue from "./events/client-requests/send-dummy-queue";
import webSocketDeleteQueue from "./events/client-requests/delete-queue";
type Param = {
ws: ServerWebSocket<WebSocketData>;
message: string | Buffer;
};
export type WebSocketMessageParam = {
ws: ServerWebSocket<WebSocketData>;
message?: string | Buffer;
data?: WebSocketDataType;
};
export default async function socketMessage({ ws, message }: Param) {
const user = ws.data.user;
const data = EJSON.parse(message.toString()) as
| WebSocketDataType
| undefined;
const websocketMessageParams: WebSocketMessageParam = {
ws,
data,
message,
};
switch (data?.event) {
/**
* Check Queue
*/
case "client:check-queue":
checkQueue({ ws });
break;
/**
* Send Dummy Queue
*/
case "client:dev:queue":
webSocketSendDummyQueue({ ws });
break;
/**
* Delete Queue
*/
case "client:delete-queue":
webSocketDeleteQueue({ ws, data });
break;
default:
break;
}
}