Newer
Older
PixelPaintWar / apps / server / src / network / handlers / room / handleRoomDisconnect.ts
/**
 * handleRoomDisconnect
 * ルーム切断ユースケースを呼び出してルーム状態更新を配信する
 */
import { Server } from "socket.io";
import type { DisconnectRoomPort } from "@server/domains/room/application/ports/roomUseCasePorts";
import { roomDisconnectUseCase } from "@server/domains/room/application/useCases/roomDisconnectUseCase";
import { createRoomDisconnectOutputAdapter } from "./createRoomOutputAdapter";

/** 切断ソケットのルーム離脱処理を実行して更新通知する */
export const handleRoomDisconnect = (
  io: Server,
  socketId: string,
  roomManager: DisconnectRoomPort
) => {
  const roomDisconnectOutputAdapter = createRoomDisconnectOutputAdapter(io);

  roomDisconnectUseCase({
    roomManager,
    socketId,
    output: roomDisconnectOutputAdapter,
  });
};